Updated Vehicle API doc and auto completion 42/28642/1
authorAlice Liu <alice.liu@intel.com>
Sat, 11 Oct 2014 05:59:53 +0000 (13:59 +0800)
committerAlice Liu <alice.liu@intel.com>
Sat, 11 Oct 2014 05:59:53 +0000 (13:59 +0800)
Package version up (3.0.31).

Change-Id: I0bcc4e0777d507c892ab31af43181879bb886b83
Signed-off-by: Alice Liu <alice.liu@intel.com>
doc/org.tizen.ivi.help_1.1.0.201406201620.jar [deleted file]
doc/org.tizen.ivi.help_1.1.0.201410111347.jar [new file with mode: 0644]
package/changelog
package/pkginfo.manifest
widlprocxmls/tizen.widlprocxml

diff --git a/doc/org.tizen.ivi.help_1.1.0.201406201620.jar b/doc/org.tizen.ivi.help_1.1.0.201406201620.jar
deleted file mode 100644 (file)
index fe04712..0000000
Binary files a/doc/org.tizen.ivi.help_1.1.0.201406201620.jar and /dev/null differ
diff --git a/doc/org.tizen.ivi.help_1.1.0.201410111347.jar b/doc/org.tizen.ivi.help_1.1.0.201410111347.jar
new file mode 100644 (file)
index 0000000..e617a57
Binary files /dev/null and b/doc/org.tizen.ivi.help_1.1.0.201410111347.jar differ
index 0f9b1d1..3f7e58e 100644 (file)
@@ -1,3 +1,7 @@
+* 3.0.31
+- Updated Vehicle API doc and auto completion
+== Alice Liu <alice.liu@intel.com> 2014-10-11
+
 * 3.0.30
 - Updated Modello Common libraries
 == Alice Liu <alice.liu@intel.com> 2014-10-10
index 4e8bf7c..8ed89e5 100644 (file)
@@ -1,4 +1,4 @@
-Version:3.0.30
+Version:3.0.31
 Maintainer: Wenchao Wang<wenchao.wang@intel.com>
 
 Package:ivi-3.0-web-add-ons
index 89847fc..f531f32 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE Definitions SYSTEM "widlprocxml.dtd">
 <Definitions>
-<Module name="MediaServer" id="::MediaServer">
-  <webidl>  module MediaServer {
-  [NoInterfaceObject] interface MediaServerManagerObject {
-                readonly attribute <ref>MediaServerManager</ref> mediaserver;
-};
-<ref>Tizen</ref> implements <ref>MediaServerManagerObject</ref>;
-    
-[NoInterfaceObject] interface MediaServerManager  { 
-            void scanNetwork(<ref>MediaServerFoundServerCallback</ref> successCallback, optional <ref>MediaServerErrorCallback</ref> errorCallback);
-};    
+<Module name="Vehicle" id="::Vehicle">
+<webidl>  module Vehicle {
+[NoInterfaceObject]
+ interface VehicleManagerObject {
+        readonly attribute <ref>Vehicle</ref> vehicle;
+ };
+  
+<ref>Tizen</ref> implements <ref>VehicleManagerObject</ref>;
 
-[NoInterfaceObject] interface MediaServer {
-            readonly attribute DOMString id;
-            readonly attribute DOMString friendlyName;
-            readonly attribute object root;
-                                            
-            void browse(DOMString containerId, DOMString sortMode, unsigned long count, unsigned long offset, <ref>MediaServerBrowseFindCallback</ref> successCallback, optional <ref>MediaServerErrorCallback</ref> errorCallback);
-                void find(DOMString containerId, DOMString searchFilter, DOMString sortMode, unsigned long count, unsigned long offset, <ref>MediaServerBrowseFindCallback</ref> successCallback, optional <ref>MediaServerErrorCallback</ref> errorCallback);
+[NoInterfaceObject]
+interface Vehicle {
+        readonly attribute <ref>VehicleConfigurationInterface</ref> identification;
+        readonly attribute <ref>VehicleConfigurationInterface</ref> sizeConfiguration;
+        readonly attribute <ref>VehicleConfigurationInterface</ref> fuelConfiguration;
+        readonly attribute <ref>VehicleConfigurationInterface</ref> transmissionConfiguration;
+        readonly attribute <ref>VehicleConfigurationInterface</ref> wheelConfiguration;
+        readonly attribute <ref>VehicleConfigurationInterface</ref> steeringWheelConfiguration;
+
+        readonly attribute <ref>VehicleSignalInterface</ref> vehicleSpeed;
+        readonly attribute <ref>VehicleSignalInterface</ref> wheelSpeed;
+        readonly attribute <ref>VehicleSignalInterface</ref> engineSpeed;
+        readonly attribute <ref>VehicleSignalInterface</ref> powerTrainTorque;
+        readonly attribute <ref>VehicleSignalInterface</ref> acceleratorPedalPosition;
+        readonly attribute <ref>VehicleSignalInterface</ref> throttlePosition;
+        readonly attribute <ref>VehicleSignalInterface</ref> tripMeters;
+        readonly attribute <ref>VehicleSignalInterface</ref> diagnostic;
+        readonly attribute <ref>VehicleSignalInterface</ref> transmission;
+        readonly attribute <ref>VehicleSignalInterface</ref> cruiseControlStatus;
+        readonly attribute <ref>VehicleSignalInterface</ref> lightStatus;
+        readonly attribute <ref>VehicleSignalInterface</ref> interiorLightStatus;
+        readonly attribute <ref>VehicleSignalInterface</ref> chime;
+        readonly attribute <ref>VehicleSignalInterface</ref> fuel;
+        readonly attribute <ref>VehicleSignalInterface</ref> engineOil;
+        readonly attribute <ref>VehicleSignalInterface</ref> acceleration;
+        readonly attribute <ref>VehicleSignalInterface</ref> engineCoolant;
+        readonly attribute <ref>VehicleSignalInterface</ref> steeringWheel;
+        readonly attribute <ref>VehicleSignalInterface</ref> ignitionTime;
+        readonly attribute <ref>VehicleSignalInterface</ref> yawRate;
+        readonly attribute <ref>VehicleSignalInterface</ref> brakeOperation;
+        readonly attribute <ref>VehicleSignalInterface</ref> wheelTick;
+        readonly attribute <ref>VehicleSignalInterface</ref> buttonEvent;
+        readonly attribute <ref>VehicleSignalInterface</ref> drivingMode;
+        readonly attribute <ref>VehicleSignalInterface</ref> nightMode;
+
+        readonly attribute <ref>VehicleSignalInterface</ref> odometer;
+        readonly attribute <ref>VehicleSignalInterface</ref> transmissionOil;
+        readonly attribute <ref>VehicleSignalInterface</ref> transmissionClutch;
+        readonly attribute <ref>VehicleSignalInterface</ref> brakeMaintenance;
+        readonly attribute <ref>VehicleSignalInterface</ref> washerFluid;
+        readonly attribute <ref>VehicleSignalInterface</ref> malfunctionIndicator;
+        readonly attribute <ref>VehicleSignalInterface</ref> batteryStatus;
+        readonly attribute <ref>VehicleSignalInterface</ref> tire;
+        readonly attribute <ref>VehicleInterface</ref>       diagnostic;
+
+        readonly attribute <ref>VehicleSignalInterface</ref>  driverIdentification;
+        readonly attribute <ref>VehicleSignalInterface</ref>? languageConfiguration;
+        readonly attribute <ref>VehicleSignalInterface</ref>  unitsOfMeasure;
+        readonly attribute <ref>VehicleSignalInterface</ref>  mirror;
+        readonly attribute <ref>VehicleSignalInterface</ref>  steeringWheel;
+        readonly attribute <ref>VehicleSignalInterface</ref>  driveMode;
+        readonly attribute <ref>VehicleSignalInterface</ref>  seatAdjustment;
+        readonly attribute <ref>VehicleSignalInterface</ref>  dashboardIllumination;
+        readonly attribute <ref>VehicleSignalInterface</ref>  vehicleSound;
+
+        readonly attribute <ref>VehicleSignalInterface</ref> antilockBrakingSystem;
+        readonly attribute <ref>VehicleSignalInterface</ref> tractionControlSystem;
+        readonly attribute <ref>VehicleSignalInterface</ref> electronicStabilityControl;
+        readonly attribute <ref>VehicleSignalInterface</ref> topSpeedLimit;
+        readonly attribute <ref>VehicleSignalInterface</ref> airbagStatus;
+        readonly attribute <ref>VehicleSignalInterface</ref> door;
+        readonly attribute <ref>VehicleSignalInterface</ref> childSafetyLock;
+        readonly attribute <ref>VehicleSignalInterface</ref> seat;
+
+        readonly attribute <ref>VehicleSignalInterface</ref> temperature;
+        readonly attribute <ref>VehicleSignalInterface</ref> rainSensor;
+        readonly attribute <ref>VehicleSignalInterface</ref> wiperStatus;
+        readonly attribute <ref>VehicleSignalInterface</ref> wiperSetting;
+        readonly attribute <ref>VehicleSignalInterface</ref> defrost;
+        readonly attribute <ref>VehicleSignalInterface</ref> sunroof;
+        readonly attribute <ref>VehicleSignalInterface</ref> convertibleRoof;
+        readonly attribute <ref>VehicleSignalInterface</ref> sideWindow;
+        readonly attribute <ref>VehicleSignalInterface</ref> climateControl;
+        readonly attribute <ref>VehicleSignalInterface</ref> atmosphericPressure;
+
+        readonly attribute <ref>VehicleSignalInterface</ref> laneDepartureStatus;
+        readonly attribute <ref>VehicleSignalInterface</ref> alarm;
+        readonly attribute <ref>VehicleSignalInterface</ref> parkingBrake;
+        readonly attribute <ref>VehicleSignalInterface</ref> parkingLights;
 };
-            
-[NoInterfaceObject] interface MediaServerError {
-             const unsigned short GENERIC = 1;
-             attribute unsigned short code;
-                 attribute DOMString message;
+
+[Callback=FunctionOnly, NoInterfaceObject]
+interface VehicleInterfaceCallback {
+        void onsuccess(object value);
 };
 
-[Callback=FunctionOnly, NoInterfaceObject] interface MediaServerFoundServerCallback {
-            void onsuccess(<ref>MediaServer</ref> value);
+[Callback=FunctionOnly, NoInterfaceObject]
+interface AvailableCallback {
+        void onsuccess(<ref>Availability</ref> available);
 };
 
-[Callback=FunctionOnly, NoInterfaceObject] interface MediaServerBrowseFindCallback {
-    void onsuccess(sequence&lt; object > value);
+enum Availability {
+        &quot;available&quot;, &quot;not_supported&quot;, &quot;not_supported_yet&quot;, &quot;not_supported_security_policy&quot;,
+        &quot;not_supported_business_policy&quot;, &quot;not_supported_other&quot;
 };
 
-[Callback=FunctionOnly, NoInterfaceObject] interface MediaServerErrorCallback {
-    void onfailure(<ref>MediaServerError</ref> error);
-};</webidl>
-  <Interface name="MediaServerManagerObject" id="::MediaServerManagerObject">
-    <webidl>[NoInterfaceObject] interface MediaServerManagerObject {
-                readonly attribute <ref>MediaServerManager</ref> mediaserver;
-};</webidl>
-    <ExtendedAttributeList>
-      <ExtendedAttribute name="NoInterfaceObject">
-        <webidl>NoInterfaceObject</webidl>
-      </ExtendedAttribute>
-    </ExtendedAttributeList>
-    <Attribute readonly="readonly" name="mediaserver" id="::MediaServerManagerObject::mediaserver">
-      <webidl>                readonly attribute <ref>MediaServerManager</ref> mediaserver;</webidl>
-      <Type name="MediaServerManager"/>
-    </Attribute>
-  </Interface>
-  <Implements name1="Tizen" name2="MediaServerManagerObject">
-    <webidl><ref>Tizen</ref> implements <ref>MediaServerManagerObject</ref>;</webidl>
-  </Implements>
-  <Interface name="MediaServerManager" id="::MediaServerManager">
-    <webidl>[NoInterfaceObject] interface MediaServerManager  { 
-            void scanNetwork(<ref>MediaServerFoundServerCallback</ref> successCallback, optional <ref>MediaServerErrorCallback</ref> errorCallback);
-};</webidl>
-    <ExtendedAttributeList>
-      <ExtendedAttribute name="NoInterfaceObject">
-        <webidl>NoInterfaceObject</webidl>
-      </ExtendedAttribute>
-    </ExtendedAttributeList>
-    <Operation name="scanNetwork" id="::MediaServerManager::scanNetwork">
-      <webidl>            void scanNetwork(<ref>MediaServerFoundServerCallback</ref> successCallback, optional <ref>MediaServerErrorCallback</ref> errorCallback);</webidl>
-      <Type type="void"/>
-      <ArgumentList>
-        <Argument name="successCallback">
-          <Type name="MediaServerFoundServerCallback"/>
-        </Argument>
-        <Argument optional="optional" name="errorCallback">
-          <Type name="MediaServerErrorCallback"/>
-        </Argument>
-      </ArgumentList>
-    </Operation>
-  </Interface>
-  <Interface name="MediaServer" id="::MediaServer">
-    <webidl>[NoInterfaceObject] interface MediaServer {
-            readonly attribute DOMString id;
-            readonly attribute DOMString friendlyName;
-            readonly attribute object root;
-                                            
-            void browse(DOMString containerId, DOMString sortMode, unsigned long count, unsigned long offset, <ref>MediaServerBrowseFindCallback</ref> successCallback, optional <ref>MediaServerErrorCallback</ref> errorCallback);
-                void find(DOMString containerId, DOMString searchFilter, DOMString sortMode, unsigned long count, unsigned long offset, <ref>MediaServerBrowseFindCallback</ref> successCallback, optional <ref>MediaServerErrorCallback</ref> errorCallback);
-};</webidl>
-    <ExtendedAttributeList>
-      <ExtendedAttribute name="NoInterfaceObject">
-        <webidl>NoInterfaceObject</webidl>
-      </ExtendedAttribute>
-    </ExtendedAttributeList>
-    <Attribute readonly="readonly" name="id" id="::MediaServer::id">
-      <webidl>            readonly attribute DOMString id;</webidl>
-      <Type type="DOMString"/>
-    </Attribute>
-    <Attribute readonly="readonly" name="friendlyName" id="::MediaServer::friendlyName">
-      <webidl>            readonly attribute DOMString friendlyName;</webidl>
-      <Type type="DOMString"/>
-    </Attribute>
-    <Attribute readonly="readonly" name="root" id="::MediaServer::root">
-      <webidl>            readonly attribute object root;</webidl>
-      <Type type="object"/>
-    </Attribute>
-    <Operation name="browse" id="::MediaServer::browse">
-      <webidl>            void browse(DOMString containerId, DOMString sortMode, unsigned long count, unsigned long offset, <ref>MediaServerBrowseFindCallback</ref> successCallback, optional <ref>MediaServerErrorCallback</ref> errorCallback);</webidl>
-      <Type type="void"/>
-      <ArgumentList>
-        <Argument name="containerId">
-          <Type type="DOMString"/>
-        </Argument>
-        <Argument name="sortMode">
-          <Type type="DOMString"/>
-        </Argument>
-        <Argument name="count">
-          <Type type="unsigned long"/>
-        </Argument>
-        <Argument name="offset">
-          <Type type="unsigned long"/>
-        </Argument>
-        <Argument name="successCallback">
-          <Type name="MediaServerBrowseFindCallback"/>
-        </Argument>
-        <Argument optional="optional" name="errorCallback">
-          <Type name="MediaServerErrorCallback"/>
-        </Argument>
-      </ArgumentList>
-    </Operation>
-    <Operation name="find" id="::MediaServer::find">
-      <webidl>                void find(DOMString containerId, DOMString searchFilter, DOMString sortMode, unsigned long count, unsigned long offset, <ref>MediaServerBrowseFindCallback</ref> successCallback, optional <ref>MediaServerErrorCallback</ref> errorCallback);</webidl>
-      <Type type="void"/>
-      <ArgumentList>
-        <Argument name="containerId">
-          <Type type="DOMString"/>
-        </Argument>
-        <Argument name="searchFilter">
-          <Type type="DOMString"/>
-        </Argument>
-        <Argument name="sortMode">
-          <Type type="DOMString"/>
-        </Argument>
-        <Argument name="count">
-          <Type type="unsigned long"/>
-        </Argument>
-        <Argument name="offset">
-          <Type type="unsigned long"/>
-        </Argument>
-        <Argument name="successCallback">
-          <Type name="MediaServerBrowseFindCallback"/>
-        </Argument>
-        <Argument optional="optional" name="errorCallback">
-          <Type name="MediaServerErrorCallback"/>
-        </Argument>
-      </ArgumentList>
-    </Operation>
-  </Interface>
-  <Interface name="MediaServerError" id="::MediaServerError">
-    <webidl>[NoInterfaceObject] interface MediaServerError {
-             const unsigned short GENERIC = 1;
-             attribute unsigned short code;
-                 attribute DOMString message;
-};</webidl>
-    <ExtendedAttributeList>
-      <ExtendedAttribute name="NoInterfaceObject">
-        <webidl>NoInterfaceObject</webidl>
-      </ExtendedAttribute>
-    </ExtendedAttributeList>
-    <Const name="GENERIC" value="1" id="::MediaServerError::GENERIC">
-      <webidl>             const unsigned short GENERIC = 1;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Attribute name="code" id="::MediaServerError::code">
-      <webidl>             attribute unsigned short code;</webidl>
-      <Type type="unsigned short"/>
-    </Attribute>
-    <Attribute name="message" id="::MediaServerError::message">
-      <webidl>                 attribute DOMString message;</webidl>
-      <Type type="DOMString"/>
-    </Attribute>
-  </Interface>
-  <Interface name="MediaServerFoundServerCallback" id="::MediaServerFoundServerCallback">
-    <webidl>[Callback=FunctionOnly, NoInterfaceObject] interface MediaServerFoundServerCallback {
-            void onsuccess(<ref>MediaServer</ref> value);
-};</webidl>
-    <ExtendedAttributeList>
-      <ExtendedAttribute name="Callback" value="FunctionOnly">
-        <webidl>Callback</webidl>
-      </ExtendedAttribute>
-      <ExtendedAttribute name="NoInterfaceObject">
-        <webidl> NoInterfaceObject</webidl>
-      </ExtendedAttribute>
-    </ExtendedAttributeList>
-    <Operation name="onsuccess" id="::MediaServerFoundServerCallback::onsuccess">
-      <webidl>            void onsuccess(<ref>MediaServer</ref> value);</webidl>
-      <Type type="void"/>
-      <ArgumentList>
-        <Argument name="value">
-          <Type name="MediaServer"/>
-        </Argument>
-      </ArgumentList>
-    </Operation>
-  </Interface>
-  <Interface name="MediaServerBrowseFindCallback" id="::MediaServerBrowseFindCallback">
-    <webidl>[Callback=FunctionOnly, NoInterfaceObject] interface MediaServerBrowseFindCallback {
-    void onsuccess(sequence&lt; object > value);
-};</webidl>
-    <ExtendedAttributeList>
-      <ExtendedAttribute name="Callback" value="FunctionOnly">
-        <webidl>Callback</webidl>
-      </ExtendedAttribute>
-      <ExtendedAttribute name="NoInterfaceObject">
-        <webidl> NoInterfaceObject</webidl>
-      </ExtendedAttribute>
-    </ExtendedAttributeList>
-    <Operation name="onsuccess" id="::MediaServerBrowseFindCallback::onsuccess">
-      <webidl>    void onsuccess(sequence&lt; object > value);</webidl>
-      <Type type="void"/>
-      <ArgumentList>
-        <Argument name="value">
-          <Type type="sequence">
-            <Type type="object"/>
-          </Type>
-        </Argument>
-      </ArgumentList>
-    </Operation>
-  </Interface>
-  <Interface name="MediaServerErrorCallback" id="::MediaServerErrorCallback">
-    <webidl>[Callback=FunctionOnly, NoInterfaceObject] interface MediaServerErrorCallback {
-    void onfailure(<ref>MediaServerError</ref> error);
-};</webidl>
-    <ExtendedAttributeList>
-      <ExtendedAttribute name="Callback" value="FunctionOnly">
-        <webidl>Callback</webidl>
-      </ExtendedAttribute>
-      <ExtendedAttribute name="NoInterfaceObject">
-        <webidl> NoInterfaceObject</webidl>
-      </ExtendedAttribute>
-    </ExtendedAttributeList>
-    <Operation name="onfailure" id="::MediaServerErrorCallback::onfailure">
-      <webidl>    void onfailure(<ref>MediaServerError</ref> error);</webidl>
-      <Type type="void"/>
-      <ArgumentList>
-        <Argument name="error">
-          <Type name="MediaServerError"/>
-        </Argument>
-      </ArgumentList>
-    </Operation>
-  </Interface>
-</Module>
-<Module name="Locale" id="::Locale">
-  <webidl>  module Locale {
-  [NoInterfaceObject]
-interface LocaleManagerObject {
-    readonly attribute <ref>Locale</ref> locale;
+[NoInterfaceObject]
+interface VehicleInterface {
+        <ref>Availability</ref> availableForRetrieval (DOMString attributeName);
+        short            availabilityChangedListener (<ref>AvailableCallback</ref> callback);
+        void         removeAvailabilityChangedListener (short handle);
+        <ref>Promise</ref>      get (optional <ref>Zone</ref> zone);
+        <ref>Promise</ref>      getHistory (Date begin, Date end, optional <ref>Zone</ref> zone);
+        readonly attribute boolean isLogged;
+        readonly attribute Date ?  from;
+        readonly attribute Date ?  to;
+        readonly attribute boolean supported;
+        readonly attribute <ref>Zone</ref>[] zones;
 };
 
-<ref>Tizen</ref> implements <ref>LocaleManagerObject</ref>;
-
-callback LocaleChangedCallback = void (DOMString newLocale);
-
+[NoInterfaceObject]
+interface VehicleConfigurationInterface : <ref>VehicleInterface</ref> {};
 
 [NoInterfaceObject]
-interface Locale  { 
-
-        void getLocale();
-        
-         void setLocale(DOMString newLocale);
-         
-         void localeChanged(<ref>LocaleChangedCallback</ref> cb);
-
-};</webidl>
-  <Interface name="LocaleManagerObject" id="::LocaleManagerObject">
-    <webidl>[NoInterfaceObject]
-interface LocaleManagerObject {
-    readonly attribute <ref>Locale</ref> locale;
-};</webidl>
-    <descriptive>
-       <description>
-        <p>
-Details. 
-        </p>
-        <p>
-def-api-feature http://tizen.org/api/vehicle 
-brief Allows access to the vehicle API
-        </p>
-       </description>
-    </descriptive>
-    <ExtendedAttributeList>
-      <ExtendedAttribute name="NoInterfaceObject">
-        <webidl>NoInterfaceObject</webidl>
-      </ExtendedAttribute>
-    </ExtendedAttributeList>
-    <Attribute readonly="readonly" name="locale" id="::LocaleManagerObject::locale">
-      <webidl>    readonly attribute <ref>Locale</ref> locale;</webidl>
-      <Type name="Locale"/>
-    </Attribute>
-  </Interface>
-  <Implements name1="Tizen" name2="LocaleManagerObject">
-    <webidl><ref>Tizen</ref> implements <ref>LocaleManagerObject</ref>;</webidl>
-  </Implements>
-  <Callback name="LocaleChangedCallback" id="::LocaleChangedCallback">
-    <webidl>callback LocaleChangedCallback = void (DOMString newLocale);</webidl>
-    <Type type="void"/>
-    <ArgumentList>
-      <Argument name="newLocale">
-        <Type type="DOMString"/>
-      </Argument>
-    </ArgumentList>
-  </Callback>
-  <Interface name="Locale" id="::Locale">
-    <webidl>[NoInterfaceObject]
-interface Locale  { 
+interface VehicleSignalInterface : <ref>VehicleInterface</ref> {
+    <ref>Availability</ref>   availableForSubscription (DOMString attributeName);
+    <ref>Availability</ref>   availableForSetting (DOMString attributeName);
+        <ref>Promise</ref>        set (object value, optional <ref>Zone</ref> zone);
+        unsigned short subscribe (<ref>VehicleInterfaceCallback</ref> callback, optional <ref>Zone</ref> zone);
+        void           unsubscribe (unsigned short handle);
+};
 
-        void getLocale();
-        
-         void setLocale(DOMString newLocale);
-         
-         void localeChanged(<ref>LocaleChangedCallback</ref> cb);
+enum ZonePosition {&quot;Front&quot;, &quot;Middle&quot;, &quot;Right&quot;, &quot;Left&quot;, &quot;Rear&quot;, &quot;Center&quot;};
 
-};</webidl>
-    <ExtendedAttributeList>
-      <ExtendedAttribute name="NoInterfaceObject">
-        <webidl>NoInterfaceObject</webidl>
-      </ExtendedAttribute>
-    </ExtendedAttributeList>
-    <Operation name="getLocale" id="::Locale::getLocale">
-      <webidl>        void getLocale();</webidl>
-      <descriptive>
-         <description>
-          <p>
-brief gets the current locale
-returns current locale in ISO 639-2 format (ie en_US for english US)
-          </p>
-         </description>
-      </descriptive>
-      <Type type="void"/>
-      <ArgumentList/>
-    </Operation>
-    <Operation name="setLocale" id="::Locale::setLocale">
-      <webidl>         void setLocale(DOMString newLocale);</webidl>
-      <descriptive>
-         <description>
-          <p>
-brief sets the system locale
-param newLocale locale to set in ISO 639-2 format
-          </p>
-         </description>
-      </descriptive>
-      <Type type="void"/>
-      <ArgumentList>
-        <Argument name="newLocale">
-          <Type type="DOMString"/>
-        </Argument>
-      </ArgumentList>
-    </Operation>
-    <Operation name="localeChanged" id="::Locale::localeChanged">
-      <webidl>         void localeChanged(<ref>LocaleChangedCallback</ref> cb);</webidl>
-      <descriptive>
-         <description>
-          <p>
-brief subscribe to locale changes.
-param cb callback to be called when this even occurs.
-          </p>
-         </description>
-      </descriptive>
-      <Type type="void"/>
-      <ArgumentList>
-        <Argument name="cb">
-          <Type name="LocaleChangedCallback"/>
-        </Argument>
-      </ArgumentList>
-    </Operation>
-  </Interface>
-</Module>
-<Module name="Vehicle" id="::Vehicle">
-  <webidl> module Vehicle {
 [NoInterfaceObject]
-interface VehicleManagerObject {
-    readonly attribute <ref>Vehicle</ref> vehicle;
+interface Zone {
+                         attribute DOMString[]  value;
+        readonly attribute <ref>Zone</ref> driver;
+        boolean equals (<ref>Zone</ref> zone);
+        boolean contains (<ref>Zone</ref> zone);
 };
-<ref>Tizen</ref> implements <ref>VehicleManagerObject</ref>;
 
+enum VehicleError {&quot;permission_denied&quot;, &quot;invalid_operation&quot;, &quot;timeout&quot;, &quot;invalid_zone&quot;, &quot;unknown&quot;};
 
 [NoInterfaceObject]
-interface VehiclePropertyType: <ref>Event</ref> { 
-         attribute <ref>DOMTimeStamp</ref> time;
-         attribute short zone;
-         attribute DOMString source;
+interface VehicleInterfaceError {
+        readonly attribute <ref>VehicleError</ref> error;
+        readonly attribute DOMString    message;
 };
 
 [NoInterfaceObject]
-interface VehiclePropertyError   { 
-        const unsigned short PERMISSION_DENIED = 1; 
-        const unsigned short PROPERTY_UNAVAILABLE = 2; 
-        const unsigned short TIMEOUT = 3; 
-        const unsigned short UNKNOWN = 10;
-        
-         attribute unsigned short code;
-
-         attribute DOMString message;
+interface VehicleCommonDataType {
+        readonly attribute <ref>DOMTimeStamp</ref>? timeStamp;
 };
 
-callback VehiclePropertyCallback = void (<ref>VehiclePropertyType</ref> value); 
-
-callback VehiclePropertyErrorCallback = void (<ref>VehiclePropertyError</ref> error); 
-
-callback VehiclePropertyListCallback = void (sequence&lt;<ref>VehiclePropertyType</ref>> values); 
-
-callback SupportedPropertiesCallback = void (sequence&lt;DOMString> properties);
 
+enum VehicleTypeEnum {
+        &quot;passengerCarMini&quot;, &quot;passengerCarLight&quot;, &quot;passengerCarCompact&quot;, &quot;passengerCarMedium&quot;,
+        &quot;passengerCarHeavy&quot;, &quot;sportUtilityVehicle&quot;, &quot;pickupTruck&quot;, &quot;van&quot;
+};
 
 [NoInterfaceObject]
-interface Vehicle  { 
-
-        const unsigned short ZONE_None = 0;
-        const unsigned short ZONE_Front = 1;
-        const unsigned short ZONE_Middle = 0x10;
-        const unsigned short ZONE_Right = 0x100;
-        const unsigned short ZONE_Left = 0x1000;
-        const unsigned short ZONE_Rear = 0x10000;
-        const unsigned short ZONE_Center = 0x10000;
-
-        sequence&lt;DOMString> supported();
-
-        any get(DOMString objectType, optional short zone);
+interface Identification : <ref>VehicleCommonDataType</ref> {
+        readonly attribute DOMString?       VIN;
+        readonly attribute DOMString?       WMI;
+        readonly attribute <ref>VehicleTypeEnum</ref>? vehicleType;
+        readonly attribute DOMString?       brand;
+        readonly attribute DOMString?       model;
+        readonly attribute unsigned short?  year;
+};
 
+[NoInterfaceObject]
+interface SizeConfiguration : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short?   width;
+        readonly attribute unsigned short?   height;
+        readonly attribute unsigned short?   length;
+        readonly attribute unsigned short[]? doorsCount;
+        readonly attribute unsigned short?   totalDoors;
+};
 
-        void subscribe(DOMString objectType, <ref>VehiclePropertyCallback</ref> successCallback, optional unsigned short zone, optional <ref>VehiclePropertyErrorCallback</ref> errorCallback);
+enum FuelTypeEnum {
+        &quot;gasoline&quot;, &quot;methanol&quot;, &quot;ethanol&quot;, &quot;diesel&quot;, &quot;lpg&quot;, &quot;cng&quot;, &quot;electric&quot;
+};
 
-        void set(DOMString objectType, <ref>VehiclePropertyType</ref> value, optional <ref>VehiclePropertyErrorCallback</ref> errorCallback);
+[NoInterfaceObject]
+interface FuelConfiguration : <ref>VehicleCommonDataType</ref> {
+        readonly attribute <ref>FuelTypeEnum</ref>[]? fuelType;
+        readonly attribute <ref>Zone</ref>?           refuelPosition;
+};
 
-        void getHistory(DOMString objectType, unsigned short zone, Date startTime, Date endTime, <ref>VehiclePropertyListCallback</ref> successCallback, optional <ref>VehiclePropertyErrorCallback</ref> errorCallback);
+enum TransmissionGearTypeEnum {&quot;auto&quot;, &quot;manual&quot;};
 
-        sequence&lt;unsigned short> listZones(DOMString objectType);
+[NoInterfaceObject]
+interface TransmissionConfiguration : <ref>VehicleCommonDataType</ref> {
+        readonly attribute <ref>TransmissionGearTypeEnum</ref>? transmissionGearType;
 };
 
 [NoInterfaceObject]
-interface VehicleSpeed : <ref>VehiclePropertyType</ref>  { 
-
-         attribute unsigned long vehicleSpeed;
+interface WheelConfiguration : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short? wheelRadius;
+                     attribute <ref>Zone</ref>?           zone;
 };
 
 [NoInterfaceObject]
-interface EngineSpeed : <ref>VehiclePropertyType</ref>  { 
-
-         attribute unsigned long engineSpeed;
+interface SteeringWheelConfiguration : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean? steeringWheelLeft;
 };
 
 [NoInterfaceObject]
-interface VehiclePowerMode : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short VEHICLEPOWERMODE_OFF = 0;
-        const unsigned short VEHICLEPOWERMODE_ACCESSORY1 = 1;
-        const unsigned short VEHICLEPOWERMODE_ACCESSORY2 = 2;
-        const unsigned short VEHICLEPOWERMODE_RUN = 3;
-
-         attribute octet vehiclePowerMode;
+interface VehicleSpeed : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short speed;
 };
 
 [NoInterfaceObject]
-interface TripMeter : <ref>VehiclePropertyType</ref>  { 
-
-         attribute sequence&lt;unsigned long> tripMeters;
+interface WheelSpeed : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short speed;
+                     attribute <ref>Zone</ref>?          zone;
 };
 
 [NoInterfaceObject]
-interface Acceleration : <ref>VehiclePropertyType</ref>  { 
-
-         attribute unsigned long x;
-
-         attribute unsigned long y;
-
-         attribute unsigned long z;
+interface EngineSpeed : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned long speed;
 };
 
 [NoInterfaceObject]
-interface Transmission : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short TRANSMISSIONPOSITION_NEUTRAL = 0;    
-        const unsigned short TRANSMISSIONPOSITION_FIRST = 1;    
-        const unsigned short TRANSMISSIONPOSITION_SECOND = 2;    
-        const unsigned short TRANSMISSIONPOSITION_THIRD = 3;    
-        const unsigned short TRANSMISSIONPOSITION_FORTH = 4;    
-        const unsigned short TRANSMISSIONPOSITION_FIFTH = 5;    
-        const unsigned short TRANSMISSIONPOSITION_SIXTH = 6;    
-        const unsigned short TRANSMISSIONPOSITION_SEVENTH = 7;    
-        const unsigned short TRANSMISSIONPOSITION_EIGHTH = 8;    
-        const unsigned short TRANSMISSIONPOSITION_NINTH = 9;    
-        const unsigned short TRANSMISSIONPOSITION_TENTH = 10;    
-        const unsigned short TRANSMISSIONPOSITION_CVT = 64;    
-        const unsigned short TRANSMISSIONPOSITION_REVERSE = 128;    
-        const unsigned short TRANSMISSIONPOSITION_PARK = 255;    
-        const unsigned short TRANSMISSIONMODE_NORMAL = 0;    
-        const unsigned short TRANSMISSIONMODE_SPORT = 1;    
-        const unsigned short TRANSMISSIONMODE_ECONOMY = 2;    
-        const unsigned short TRANSMISSIONMODE_OEMCUSTOM1 = 3;    
-        const unsigned short TRANSMISSIONMODE_OEMCUSTOM2 = 4;    
-
-         attribute octet gearPosition;
-
-         attribute octet mode;
+interface PowerTrainTorque : <ref>VehicleCommonDataType</ref> {
+        readonly attribute short value;
 };
 
 [NoInterfaceObject]
-interface CruiseControlStatus : <ref>VehiclePropertyType</ref>  { 
-
-         attribute boolean activated;
-
-         attribute unsigned short speed;
+interface AcceleratorPedalPosition : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short value;
 };
 
 [NoInterfaceObject]
-interface WheelBrake : <ref>VehiclePropertyType</ref>  { 
-
-         attribute boolean engaged;
+interface ThrottlePosition : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short value;
 };
 
 [NoInterfaceObject]
-interface LightStatus : <ref>VehiclePropertyType</ref>  { 
-
-         attribute boolean head;
-
-         attribute boolean rightTurn;
-
-         attribute boolean leftTurn;
-
-         attribute boolean brake;
-
-         attribute boolean fog;
-
-         attribute boolean hazard;
-
-         attribute boolean parking;
-
-         attribute boolean highBeam;
+interface Trip {
+        readonly attribute unsigned long   distance;
+        readonly attribute unsigned short? averageSpeed;
+        readonly attribute unsigned short? fuelConsumption;
 };
 
 [NoInterfaceObject]
-interface InteriorLightStatus : <ref>VehiclePropertyType</ref>  { 
+interface TripMeters : <ref>VehicleCommonDataType</ref> {
+        readonly attribute <ref>Trip</ref>[] meters;
+};
 
-         attribute boolean passenger;
+[NoInterfaceObject]
+interface Diagnostic : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned long accumulatedEngineRuntime;
+        readonly attribute unsigned long distanceWithMILOn;
+        readonly attribute unsigned long distanceSinceCodeCleared;
+        readonly attribute unsigned long timeRunMILOn;
+        readonly attribute unsigned long timeTroubleCodeClear;
+};
 
-         attribute boolean driver;
+enum TransmissionMode {&quot;park&quot;, &quot;reverse&quot;, &quot;neutral&quot;, &quot;low&quot;, &quot;drive&quot;, &quot;overdrive&quot;};
 
-         attribute boolean center;
+[NoInterfaceObject]
+interface Transmission : <ref>VehicleCommonDataType</ref> {
+        readonly attribute octet?            gear;
+        readonly attribute <ref>TransmissionMode</ref>? mode;
 };
 
 [NoInterfaceObject]
-interface Horn : <ref>VehiclePropertyType</ref>  { 
-
-         attribute boolean on;
+interface CruiseControlStatus : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean        status;
+        readonly attribute unsigned short speed;
 };
 
 [NoInterfaceObject]
-interface Fuel : <ref>VehiclePropertyType</ref>  { 
-
-         attribute unsigned short level;
-
-         attribute unsigned short range;
-
-         attribute unsigned short instantConsumption;
-
-         attribute unsigned short instantEconomy;
-
-         attribute unsigned short averageEconomy;
+interface LightStatus : <ref>VehicleCommonDataType</ref> {
+        attribute boolean  head;
+        attribute boolean  rightTurn;
+        attribute boolean  leftTurn;
+        attribute boolean  brake;
+        attribute boolean? fog;
+        attribute boolean  hazard;
+        attribute boolean  parking;
+        attribute boolean  highBeam;
+        attribute boolean? automaticHeadlights;
+        attribute boolean? dynamicHighBeam;
+        attribute <ref>Zone</ref>?    zone;
 };
 
 [NoInterfaceObject]
-interface EngineOil : <ref>VehiclePropertyType</ref>  { 
-
-         attribute unsigned short remaining;
-
-         attribute long temperature;
-
-         attribute unsigned short pressure;
+interface InteriorLightStatus : <ref>VehicleCommonDataType</ref> {
+        attribute boolean status;
+        attribute <ref>Zone</ref>?   zone;
 };
 
 [NoInterfaceObject]
-interface Location : <ref>VehiclePropertyType</ref>  { 
-
-         attribute double latitude;
-
-         attribute double longitude;
-
-         attribute double altitude;
-
-         attribute unsigned short direction;
+interface Horn : <ref>VehicleCommonDataType</ref> {
+        attribute boolean status;
 };
 
 [NoInterfaceObject]
-interface ExteriorBrightness : <ref>VehiclePropertyType</ref>  { 
-
-         attribute unsigned long exteriorBrightness;
+interface Chime : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean status;
 };
 
 [NoInterfaceObject]
-interface Temperature : <ref>VehiclePropertyType</ref>  { 
-
-         attribute short interior;
-
-         attribute short exterior;
+interface Fuel : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short level;
+        readonly attribute unsigned long  range;
+        readonly attribute unsigned long  instantConsumption;
+        readonly attribute unsigned long  averageConsumption;
+        readonly attribute unsigned long  fuelConsumedSinceRestart;
+        readonly attribute unsigned long  vehicleTimeSinceRestart;
 };
 
 [NoInterfaceObject]
-interface RainSensor : <ref>VehiclePropertyType</ref>  { 
-
-         attribute unsigned short rainSensor;
+interface EngineOil : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short level;
+        readonly attribute unsigned short lifeRemaining;
+        readonly attribute long           temperature;
+        readonly attribute unsigned short pressure;
+        readonly attribute boolean        change;
 };
 
 [NoInterfaceObject]
-interface WindshieldWiper : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short WIPERSPEED_OFF = 0;    
-        const unsigned short WIPERSPEED_SLOWEST= 1;    
-        const unsigned short WIPERSPEED_FASTEST = 5;    
-        const unsigned short WIPERSPEED_AUTO = 10;    
-
-         attribute unsigned short windshieldWiper;
+interface Acceleration : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned long x;
+        readonly attribute unsigned long y;
+        readonly attribute unsigned long z;
 };
 
-dictionary DefrostDictionary {
-        unsigned short window;
-        boolean defrost;
+[NoInterfaceObject]
+interface EngineCoolant : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short level;
+        readonly attribute unsigned short temperature;
 };
 
 [NoInterfaceObject]
-interface HVAC : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short AIRFLOWDIRECTION_FRONTPANEL = 0;
-        const unsigned short AIRFLOWDIRECTION_FLOORDUCT= 1;
-        const unsigned short AIRFLOWDIRECTION_FRONT = 0x02;
-        const unsigned short AIRFLOWDIRECTION_DEFROSTER = 0x04;
-
-        attribute unsigned short airflowDirection;
-
-        attribute unsigned short fanSpeed;
-
-        attribute unsigned short targetTemperature;
+interface SteeringWheel : <ref>VehicleCommonDataType</ref> {
+        readonly attribute short angle;
+};
 
-        attribute boolean airConditioning;
+[NoInterfaceObject]
+interface IgnitionTime : <ref>VehicleCommonDataType</ref> {
+        readonly attribute <ref>DOMTimeStamp</ref> ignitionOnTime;
+        readonly attribute <ref>DOMTimeStamp</ref> ignitionOffTime;
+};
 
-        attribute boolean airRecirculation;
+[NoInterfaceObject]
+interface YawRate : <ref>VehicleCommonDataType</ref> {
+        readonly attribute short value;
+};
 
-        attribute boolean heater;
+[NoInterfaceObject]
+interface BrakeOperation : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean brakePedalDepressed;
+};
 
-        attribute <ref>DefrostDictionary</ref> defrost;
+[NoInterfaceObject]
+interface WheelTick : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned long value;
+                         attribute <ref>Zone</ref>?         zone;
+};
 
-        attribute boolean steeringWheelHeater;
+enum VehicleButton {
+        &quot;home&quot;, &quot;back&quot;, &quot;search&quot;, &quot;call&quot;, &quot;end_call&quot;, &quot;media_play&quot;,
+        &quot;media_next&quot;, &quot;media_previous&quot;, &quot;media_pause&quot;, &quot;voice_recognize&quot;,
+        &quot;enter&quot;, &quot;left&quot;, &quot;right&quot;, &quot;up&quot;, &quot;down&quot;
+};
 
-        attribute boolean seatHeater;
+enum PressType {&quot;press&quot;, &quot;long_press&quot;, &quot;release&quot;};
 
-        attribute boolean seatCooler;
+[NoInterfaceObject]
+interface ButtonEvent : <ref>VehicleCommonDataType</ref> {
+        readonly attribute <ref>VehicleButton</ref>[] button;
+        readonly attribute <ref>PressType</ref>       state;
 };
 
 [NoInterfaceObject]
-interface WindowStatus : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short WINDOWLOCATION_DRIVER= 0;    
-        const unsigned short WINDOWLOCATION_PASSENGER = 1;    
-        const unsigned short WINDOWLOCATION_LEFTREAR = 2;    
-        const unsigned short WINDOWLOCATION_RIGHTREAR = 3;    
-        const unsigned short WINDOWLOCATION_REAR = 4;    
-
-        attribute object WindowStatus;
+interface DrivingMode : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean mode;
 };
 
 [NoInterfaceObject]
-interface Sunroof : <ref>VehiclePropertyType</ref>  { 
-
-        attribute unsigned short openness;
-
-        attribute unsigned short tilt;
+interface NightMode : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean mode;
 };
 
 [NoInterfaceObject]
-interface ConvertibleRoof : <ref>VehiclePropertyType</ref>  { 
-
-        attribute unsigned short openness;
+interface Odometer : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned long? distanceSinceStart;
+        readonly attribute unsigned long  distanceTotal;
 };
 
 [NoInterfaceObject]
-interface VehicleId : <ref>VehiclePropertyType</ref>  { 
-
-         attribute DOMString WMI;
-
-         attribute DOMString VIN;
+interface TransmissionOil : <ref>VehicleCommonDataType</ref> {
+        readonly attribute byte?  wear;
+        readonly attribute short? temperature;
 };
 
 [NoInterfaceObject]
-interface Size : <ref>VehiclePropertyType</ref>  { 
-
-         attribute unsigned long width;
-
-         attribute unsigned long height;
-
-         attribute unsigned long length;
+interface TransmissionClutch : <ref>VehicleCommonDataType</ref> {
+        readonly attribute byte wear;
 };
 
 [NoInterfaceObject]
-interface FuelInfo : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short FUELTYPE_GASOLINE = 0;    
-        const unsigned short FUELTYPE_HIGH_OCTANE= 1;    
-        const unsigned short FUELTYPE_DIESEL = 2;    
-        const unsigned short FUELTYPE_ELECTRIC = 3;    
-        const unsigned short FUELTYPE_HYDROGEN = 4;    
-        const unsigned short REFUELPOSITION_LEFT = 0;    
-        const unsigned short REFUELPOSITION_RIGHT= 1;    
-        const unsigned short REFUELPOSITION_FRONT = 2;    
-        const unsigned short REFUELPOSITION_REAR = 3;    
-
-         attribute unsigned short type;
-
-         attribute unsigned short refuelPosition;
+interface BrakeMaintenance : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short? fluidLevel;
+        readonly attribute boolean?        fluidLevelLow;
+        readonly attribute byte?           padWear;
+        readonly attribute boolean?        brakesWorn;
+                         attribute <ref>Zone</ref>?           zone;
 };
 
 [NoInterfaceObject]
-interface VehicleType : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short VEHICLETYPE_SEDAN = 0;    
-        const unsigned short VEHICLETYPE_COUPE= 1;    
-        const unsigned short VEHICLETYPE_CABRIOLE = 2;    
-        const unsigned short VEHICLETYPE_ROADSTER = 3;    
-        const unsigned short VEHICLETYPE_SUV = 4;    
-        const unsigned short VEHICLETYPE_TRUCK = 5;    
-
-         attribute unsigned short type;
+interface WasherFluid : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short? level;
+        readonly attribute boolean?        levelLow;
 };
 
 [NoInterfaceObject]
-interface Doors : <ref>VehiclePropertyType</ref>  { 
-
-         attribute sequence&lt;unsigned short> doorsPerRow;
+interface MalfunctionIndicator : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean on;
 };
 
 [NoInterfaceObject]
-interface TransmissionGearType : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short TRANSMISSIONGEARTYPE_AUTO=0;    
-        const unsigned short TRANSMISSIONGEARTYPE_MANUAL=1;    
-        const unsigned short TRANSMISSIONGEARTYPE_CV=2;    
-
-         attribute unsigned short transmissionGearType;
+interface BatteryStatus : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short? chargeLevel;
+        readonly attribute unsigned short? voltage;
+        readonly attribute unsigned short? current;
+                         attribute <ref>Zone</ref>?           zone;
 };
 
 [NoInterfaceObject]
-interface WheelInformation : <ref>VehiclePropertyType</ref>  { 
-
-         attribute unsigned short frontWheelRadius;
-
-         attribute unsigned short rearWheelRadius;
+interface Tire : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean?        pressureLow;
+        readonly attribute unsigned short? pressure;
+        readonly attribute short?          temperature;
+                         attribute <ref>Zone</ref>?           zone;
+};
 
-         attribute unsigned long wheelTrack;
+[NoInterfaceObject]
+interface Diagnostic : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned long accumulatedEngineRuntime;
+        readonly attribute unsigned long distanceWithMILOn;
+        readonly attribute unsigned long distanceSinceCodeCleared;
+        readonly attribute unsigned long timeRunMILOn;
+        readonly attribute unsigned long timeTroubleCodeClear;
+};
 
-         attribute boolean ABS;
+[NoInterfaceObject]
+interface LanguageConfiguration : <ref>VehicleCommonDataType</ref> {
+        attribute DOMString? language;
 };
 
 [NoInterfaceObject]
-interface Odometer : <ref>VehiclePropertyType</ref>  { 
+interface UnitsOfMeasure : <ref>VehicleCommonDataType</ref> {
+        attribute boolean?   isMKSSystem;
+        attribute DOMString? unitsFuelVolume;
+        attribute DOMString? unitsDistance;
+        attribute DOMString? unitsSpeed;
+        attribute DOMString? unitsFuelConsumption;
+};
 
-         attribute unsigned long odometer;
+[NoInterfaceObject]
+interface Mirror : <ref>VehicleCommonDataType</ref> {
+        attribute unsigned short? mirrorTilt;
+        attribute unsigned short? mirrorPan;
+        attribute <ref>Zone</ref>?           zone;
 };
 
 [NoInterfaceObject]
-interface Fluid : <ref>VehiclePropertyType</ref>  { 
+interface SeatAdjustment : <ref>VehicleCommonDataType</ref> {
+        attribute unsigned short? reclineSeatBack;
+        attribute unsigned short? seatSlide;
+        attribute unsigned short? seatCushionHeight;
+        attribute unsigned short? seatHeadrest;
+        attribute unsigned short? seatBackCushion;
+        attribute unsigned short? seatSideCushion;
+        attribute <ref>Zone</ref>?           zone;
+};
 
-         attribute unsigned short transmission;
+enum DriveModeEnum {&quot;comfort&quot;, &quot;auto&quot;, &quot;sport&quot;, &quot;eco&quot;, &quot;manual&quot;, &quot;winter&quot;};
 
-         attribute unsigned short brake;
+[NoInterfaceObject]
+interface DriveMode : <ref>VehicleCommonDataType</ref> {
+        attribute <ref>DriveModeEnum</ref>? driveMode;
+};
 
-         attribute unsigned short washer;
+[NoInterfaceObject]
+interface DashboardIllumination : <ref>VehicleCommonDataType</ref> {
+        attribute DOMString? dashboardIllumination;
 };
 
 [NoInterfaceObject]
-interface Battery : <ref>VehiclePropertyType</ref>  { 
+interface VehicleSound : <ref>VehicleCommonDataType</ref> {
+        attribute boolean    activeNoiseControlMode;
+        attribute DOMString? engineSoundEnhancementMode;
+};
 
-         attribute double voltage;
+[NoInterfaceObject]
+interface AntilockBrakingSystem : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean enabled;
+        readonly attribute boolean engaged;
+};
 
-         attribute double current;
+[NoInterfaceObject]
+interface TractionControlSystem : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean enabled;
+        readonly attribute boolean engaged;
 };
 
 [NoInterfaceObject]
-interface TirePressure : <ref>VehiclePropertyType</ref>  { 
+interface ElectronicStabilityControl : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean enabled;
+        readonly attribute boolean engaged;
+};
 
-         attribute double leftFront;
+[NoInterfaceObject]
+interface TopSpeedLimit : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short speed;
+};
 
-         attribute double rightFront;
+[NoInterfaceObject]
+interface AirbagStatus : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean activated;
+        readonly attribute boolean deployed;
+                         attribute <ref>Zone</ref>?   zone;
+};
 
-         attribute double leftRear;
+enum DoorOpenStatus {&quot;open&quot;, &quot;ajar&quot;, &quot;closed&quot;};
 
-         attribute double rightRear;
+[NoInterfaceObject]
+interface Door : <ref>VehicleCommonDataType</ref> {
+        readonly attribute <ref>DoorOpenStatus</ref> status;
+                     attribute boolean        lock;
+                         attribute <ref>Zone</ref>?          zone;
 };
 
 [NoInterfaceObject]
-interface TireTemperature : <ref>VehiclePropertyType</ref>  { 
-
-         attribute double leftFront;
+interface ChildSafetyLock : <ref>VehicleCommonDataType</ref> {
+        attribute boolean lock;
+        attribute <ref>Zone</ref>?   zone;
+};
 
-         attribute double rightFront;
+enum OccupantStatus {&quot;adult&quot;, &quot;child&quot;, &quot;vacant&quot;};
 
-         attribute double leftRear;
+enum IdentificationType {&quot;pin&quot;, &quot;keyfob&quot;, &quot;Bluetooth&quot;, &quot;NFC&quot;, &quot;fingerprint&quot;, &quot;camera&quot;, &quot;voice&quot;};
 
-         attribute double rightRear;
+[NoInterfaceObject]
+interface Seat : <ref>VehicleCommonDataType</ref> {
+        readonly attribute <ref>OccupantStatus</ref>     occupant;
+        readonly attribute boolean            seatbelt;
+        readonly attribute DOMString?         occupantName;
+        readonly attribute <ref>IdentificationType</ref> identificationType;
+                         attribute <ref>Zone</ref>?              zone;
 };
 
 [NoInterfaceObject]
-interface SecurityAlert : <ref>VehiclePropertyType</ref>  { 
-
-         attribute boolean securityAlert;
+interface Temperature : <ref>VehicleCommonDataType</ref> {
+        readonly attribute float interiorTemperature;
+        readonly attribute float exteriorTemperature;
 };
 
 [NoInterfaceObject]
-interface ParkingBrake : <ref>VehiclePropertyType</ref>  { 
-
-         attribute boolean parkingBrake;
+interface RainSensor : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short rain;
+                     attribute <ref>Zone</ref>?         zone;
 };
 
 [NoInterfaceObject]
-interface ParkingLight : <ref>VehiclePropertyType</ref>  { 
-
-         attribute boolean parkingLight;
+interface WiperStatus : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short wiperSpeed;
+                     attribute <ref>Zone</ref>?         zone;
 };
 
-[NoInterfaceObject]
-interface HazardLight : <ref>VehiclePropertyType</ref>  { 
+enum WiperControl {&quot;off&quot;, &quot;once&quot;, &quot;slowest&quot;, &quot;slow&quot;, &quot;middle&quot;, &quot;fast&quot;, &quot;fastest&quot;, &quot;auto&quot;};
 
-         attribute boolean hazardLight;
+[NoInterfaceObject]
+interface WiperSetting : <ref>VehicleCommonDataType</ref> {
+        attribute <ref>WiperControl</ref> wiperControl;
+        attribute <ref>Zone</ref>?        zone;
 };
 
 [NoInterfaceObject]
-interface AntilockBrakingSystem : <ref>VehiclePropertyType</ref>  { 
-
-         attribute boolean antilockBrakingSystem;
+interface Defrost : <ref>VehicleCommonDataType</ref> {
+        attribute boolean? defrostWindow;
+        attribute boolean? defrostMirrors;
+        attribute <ref>Zone</ref>?    zone;
 };
 
-[NoInterfaceObject]
-interface TractionControlSystem : <ref>VehiclePropertyType</ref>  { 
+enum AirflowDirection {&quot;frontpanel&quot;, &quot;floorduct&quot;, &quot;bilevel&quot;, &quot;defrostfloor&quot;};
 
-         attribute boolean tractionControlSystem;
+[NoInterfaceObject]
+interface ClimateControl : <ref>VehicleCommonDataType</ref> {
+        attribute <ref>AirflowDirection</ref> airflowDirection;
+        attribute unsigned short    fanSpeedLevel;
+        attribute byte?            targetTemperature;
+        attribute boolean          airConditioning;
+        attribute boolean          heater;
+        attribute unsigned short?   seatHeater;
+        attribute unsigned short?   seatCooler;
+        attribute boolean          airRecirculation;
+        attribute unsigned short?   steeringWheelHeater;
+        attribute <ref>Zone</ref>?            zone;
 };
 
 [NoInterfaceObject]
-interface VehicleTopSpeedLimit : <ref>VehiclePropertyType</ref>  { 
+interface Sunroof : <ref>VehicleCommonDataType</ref> {
+        attribute unsigned short openness;
+        attribute unsigned short tilt;
+        attribute <ref>Zone</ref>?         zone;
+};
+
+enum ConvertibleRoofStatus {&quot;closed&quot;, &quot;closing&quot;, &quot;opening&quot;, &quot;opened&quot;};
 
-         attribute unsigned short vehicleTopSpeedLimit;
+[NoInterfaceObject]
+interface ConvertibleRoof : <ref>VehicleCommonDataType</ref> {
+        attribute <ref>ConvertibleRoofStatus</ref> status;
 };
 
 [NoInterfaceObject]
-interface AirbagStatus : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short AIRBAGLOCATION_DRIVER = 0;    
-        const unsigned short AIRBAGLOCATION_PASSENGER= 1;    
-        const unsigned short AIRBAGLOCATION_LEFTSIDE = 2;    
-        const unsigned short AIRBAGLOCATION_RIGHTSIDE = 3;    
-        const unsigned short AIRBAGSTATUS_INACTIVE = 0;    
-        const unsigned short AIRBAGSTATUS_ACTIVE = 1;    
-        const unsigned short AIRBAGSTATUS_DEPLOYED = 2;    
-
-         attribute object airbagStatus;
+interface SideWindow : <ref>VehicleCommonDataType</ref> {
+        attribute boolean? lock;
+        attribute unsigned short?    openness;
+        attribute <ref>Zone</ref>?             zone;
 };
 
 [NoInterfaceObject]
-interface DoorStatus : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short DOORLOCATION_DRIVER= 0;    
-        const unsigned short DOORLOCATION_PASSENGER = 1;    
-        const unsigned short DOORLOCATION_LEFTREAR = 2;    
-        const unsigned short DOORLOCATION_RIGHTREAR = 3;    
-        const unsigned short DOORLOCATION_TRUNK = 4;    
-        const unsigned short DOORLOCATION_FUELCAP = 5;    
-        const unsigned short DOORLOCATION_HOOD = 6;    
-        const unsigned short DOORSTATUS_CLOSED = 0;    
-        const unsigned short DOORSTATUS_OPEN = 1;    
-        const unsigned short DOORSTATUS_AJAR = 2;    
-
-         attribute object doorStatus;
-
-         attribute object doorLockStatus;
-
-         attribute boolean childLockStatus;
+interface AtmosphericPressure : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short pressure;
 };
 
+enum LaneDepartureStatus {&quot;off&quot;, &quot;pause&quot;, &quot;running&quot;};
+
 [NoInterfaceObject]
-interface SeatBeltStatus : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short SEATBELTLOCATION_DRIVER= 0;    
-        const unsigned short SEATBELTLOCATION_MIDDLEFRONT = 1;    
-        const unsigned short SEATBELTLOCATION_PASSENGER = 2;    
-        const unsigned short SEATBELTLOCATION_LEFTREAR = 3;    
-        const unsigned short SEATBELTLOCATION_MIDDLEREAR = 4;    
-        const unsigned short SEATBELTLOCATION_RIGHTREAR = 5;    
-
-         attribute object seatBeltStatus;
+interface LaneDepartureDetection : <ref>VehicleCommonDataType</ref> {
+        readonly attribute <ref>LaneDepartureStatus</ref> status;
 };
 
+enum AlarmStatus {&quot;disarmed&quot;, &quot;preArmed&quot;, &quot;armed&quot;, &quot;alarmed&quot;};
+
 [NoInterfaceObject]
-interface OccupantStatus : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short OCCUPANTLOCATION_DRIVER = 0;    
-        const unsigned short OCCUPANTLOCATION_FRONTMIDDLE = 1;    
-        const unsigned short OCCUPANTLOCATION_PASSENGER= 2;    
-        const unsigned short OCCUPANTLOCATION_LEFTREAR = 3;    
-        const unsigned short OCCUPANTLOCATION_MIDDLEREAR = 4;    
-        const unsigned short OCCUPANTLOCATION_RIGHTREAR = 5;    
-        const unsigned short OCCUPANTSTATUS_VACANT = 0;    
-        const unsigned short OCCUPANTSTATUS_CHILD = 1;    
-        const unsigned short OCCUPANTSTATUS_ADULT = 2;    
-
-         attribute object occupantStatus;
+interface Alarm : <ref>VehicleCommonDataType</ref> {
+        attribute <ref>AlarmStatus</ref> status;
 };
 
+enum ParkingBrakeStatus {&quot;inactive&quot;, &quot;active&quot;, &quot;error&quot;};
+
 [NoInterfaceObject]
-interface ObstacleDistance : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short DISTANCESENSORLOCATION_LEFTFRONT = 0;    
-        const unsigned short DISTANCESENSORLOCATION_RIGHTFRONT = 1;    
-        const unsigned short DISTANCESENSORLOCATION_LEFTREAR = 2;    
-        const unsigned short DISTANCESENSORLOCATION_RIGHTREAR = 3;    
-        const unsigned short DISTANCESENSORLOCATION_LEFTBLINDSPOT = 4;    
-        const unsigned short DISTANCESENSORLOCATION_RIGHTBLINDSPOT = 5;    
-
-         attribute object obstacleDistance;
+interface ParkingBrake : <ref>VehicleCommonDataType</ref> {
+        readonly attribute <ref>ParkingBrakeStatus</ref> status;
 };
-};</webidl>
+
+[NoInterfaceObject]
+interface ParkingLights : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean status;
+                     attribute boolean setting;
+};};</webidl>
   <Interface name="VehicleManagerObject" id="::VehicleManagerObject">
-    <webidl>[NoInterfaceObject]
-interface VehicleManagerObject {
-    readonly attribute <ref>Vehicle</ref> vehicle;
-};</webidl>
-    <descriptive>
-       <description>
-        <p>
-Details. 
-        </p>
-       </description>
-        <def-api-feature identifier="http://tizen.org/api/vehicle">
-          <descriptive>
-           <description>
-            <p>
-            </p>
-           </description>
-            <brief>
- Allows access to the vehicle API
-            </brief>
-          </descriptive>
-        </def-api-feature>
-    </descriptive>
+    <webidl> [NoInterfaceObject]
+ interface VehicleManagerObject {
+        readonly attribute <ref>Vehicle</ref> vehicle;
+ };</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <Attribute readonly="readonly" name="vehicle" id="::VehicleManagerObject::vehicle">
+      <webidl>        readonly attribute <ref>Vehicle</ref> vehicle;</webidl>
+      <Type name="Vehicle"/>
+    </Attribute>
+  </Interface>
+  <Implements name1="Tizen" name2="VehicleManagerObject">
+    <webidl><ref>Tizen</ref> implements <ref>VehicleManagerObject</ref>;</webidl>
+  </Implements>
+  <Interface name="Vehicle" id="::Vehicle">
+    <webidl>[NoInterfaceObject]
+interface Vehicle {
+        readonly attribute <ref>VehicleConfigurationInterface</ref> identification;
+        readonly attribute <ref>VehicleConfigurationInterface</ref> sizeConfiguration;
+        readonly attribute <ref>VehicleConfigurationInterface</ref> fuelConfiguration;
+        readonly attribute <ref>VehicleConfigurationInterface</ref> transmissionConfiguration;
+        readonly attribute <ref>VehicleConfigurationInterface</ref> wheelConfiguration;
+        readonly attribute <ref>VehicleConfigurationInterface</ref> steeringWheelConfiguration;
+
+        readonly attribute <ref>VehicleSignalInterface</ref> vehicleSpeed;
+        readonly attribute <ref>VehicleSignalInterface</ref> wheelSpeed;
+        readonly attribute <ref>VehicleSignalInterface</ref> engineSpeed;
+        readonly attribute <ref>VehicleSignalInterface</ref> powerTrainTorque;
+        readonly attribute <ref>VehicleSignalInterface</ref> acceleratorPedalPosition;
+        readonly attribute <ref>VehicleSignalInterface</ref> throttlePosition;
+        readonly attribute <ref>VehicleSignalInterface</ref> tripMeters;
+        readonly attribute <ref>VehicleSignalInterface</ref> diagnostic;
+        readonly attribute <ref>VehicleSignalInterface</ref> transmission;
+        readonly attribute <ref>VehicleSignalInterface</ref> cruiseControlStatus;
+        readonly attribute <ref>VehicleSignalInterface</ref> lightStatus;
+        readonly attribute <ref>VehicleSignalInterface</ref> interiorLightStatus;
+        readonly attribute <ref>VehicleSignalInterface</ref> chime;
+        readonly attribute <ref>VehicleSignalInterface</ref> fuel;
+        readonly attribute <ref>VehicleSignalInterface</ref> engineOil;
+        readonly attribute <ref>VehicleSignalInterface</ref> acceleration;
+        readonly attribute <ref>VehicleSignalInterface</ref> engineCoolant;
+        readonly attribute <ref>VehicleSignalInterface</ref> steeringWheel;
+        readonly attribute <ref>VehicleSignalInterface</ref> ignitionTime;
+        readonly attribute <ref>VehicleSignalInterface</ref> yawRate;
+        readonly attribute <ref>VehicleSignalInterface</ref> brakeOperation;
+        readonly attribute <ref>VehicleSignalInterface</ref> wheelTick;
+        readonly attribute <ref>VehicleSignalInterface</ref> buttonEvent;
+        readonly attribute <ref>VehicleSignalInterface</ref> drivingMode;
+        readonly attribute <ref>VehicleSignalInterface</ref> nightMode;
+
+        readonly attribute <ref>VehicleSignalInterface</ref> odometer;
+        readonly attribute <ref>VehicleSignalInterface</ref> transmissionOil;
+        readonly attribute <ref>VehicleSignalInterface</ref> transmissionClutch;
+        readonly attribute <ref>VehicleSignalInterface</ref> brakeMaintenance;
+        readonly attribute <ref>VehicleSignalInterface</ref> washerFluid;
+        readonly attribute <ref>VehicleSignalInterface</ref> malfunctionIndicator;
+        readonly attribute <ref>VehicleSignalInterface</ref> batteryStatus;
+        readonly attribute <ref>VehicleSignalInterface</ref> tire;
+        readonly attribute <ref>VehicleInterface</ref>       diagnostic;
+
+        readonly attribute <ref>VehicleSignalInterface</ref>  driverIdentification;
+        readonly attribute <ref>VehicleSignalInterface</ref>? languageConfiguration;
+        readonly attribute <ref>VehicleSignalInterface</ref>  unitsOfMeasure;
+        readonly attribute <ref>VehicleSignalInterface</ref>  mirror;
+        readonly attribute <ref>VehicleSignalInterface</ref>  steeringWheel;
+        readonly attribute <ref>VehicleSignalInterface</ref>  driveMode;
+        readonly attribute <ref>VehicleSignalInterface</ref>  seatAdjustment;
+        readonly attribute <ref>VehicleSignalInterface</ref>  dashboardIllumination;
+        readonly attribute <ref>VehicleSignalInterface</ref>  vehicleSound;
+
+        readonly attribute <ref>VehicleSignalInterface</ref> antilockBrakingSystem;
+        readonly attribute <ref>VehicleSignalInterface</ref> tractionControlSystem;
+        readonly attribute <ref>VehicleSignalInterface</ref> electronicStabilityControl;
+        readonly attribute <ref>VehicleSignalInterface</ref> topSpeedLimit;
+        readonly attribute <ref>VehicleSignalInterface</ref> airbagStatus;
+        readonly attribute <ref>VehicleSignalInterface</ref> door;
+        readonly attribute <ref>VehicleSignalInterface</ref> childSafetyLock;
+        readonly attribute <ref>VehicleSignalInterface</ref> seat;
+
+        readonly attribute <ref>VehicleSignalInterface</ref> temperature;
+        readonly attribute <ref>VehicleSignalInterface</ref> rainSensor;
+        readonly attribute <ref>VehicleSignalInterface</ref> wiperStatus;
+        readonly attribute <ref>VehicleSignalInterface</ref> wiperSetting;
+        readonly attribute <ref>VehicleSignalInterface</ref> defrost;
+        readonly attribute <ref>VehicleSignalInterface</ref> sunroof;
+        readonly attribute <ref>VehicleSignalInterface</ref> convertibleRoof;
+        readonly attribute <ref>VehicleSignalInterface</ref> sideWindow;
+        readonly attribute <ref>VehicleSignalInterface</ref> climateControl;
+        readonly attribute <ref>VehicleSignalInterface</ref> atmosphericPressure;
+
+        readonly attribute <ref>VehicleSignalInterface</ref> laneDepartureStatus;
+        readonly attribute <ref>VehicleSignalInterface</ref> alarm;
+        readonly attribute <ref>VehicleSignalInterface</ref> parkingBrake;
+        readonly attribute <ref>VehicleSignalInterface</ref> parkingLights;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <Attribute readonly="readonly" name="identification" id="::Vehicle::identification">
+      <webidl>        readonly attribute <ref>VehicleConfigurationInterface</ref> identification;</webidl>
+      <Type name="VehicleConfigurationInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="sizeConfiguration" id="::Vehicle::sizeConfiguration">
+      <webidl>        readonly attribute <ref>VehicleConfigurationInterface</ref> sizeConfiguration;</webidl>
+      <Type name="VehicleConfigurationInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="fuelConfiguration" id="::Vehicle::fuelConfiguration">
+      <webidl>        readonly attribute <ref>VehicleConfigurationInterface</ref> fuelConfiguration;</webidl>
+      <Type name="VehicleConfigurationInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="transmissionConfiguration" id="::Vehicle::transmissionConfiguration">
+      <webidl>        readonly attribute <ref>VehicleConfigurationInterface</ref> transmissionConfiguration;</webidl>
+      <Type name="VehicleConfigurationInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="wheelConfiguration" id="::Vehicle::wheelConfiguration">
+      <webidl>        readonly attribute <ref>VehicleConfigurationInterface</ref> wheelConfiguration;</webidl>
+      <Type name="VehicleConfigurationInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="steeringWheelConfiguration" id="::Vehicle::steeringWheelConfiguration">
+      <webidl>        readonly attribute <ref>VehicleConfigurationInterface</ref> steeringWheelConfiguration;</webidl>
+      <Type name="VehicleConfigurationInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="vehicleSpeed" id="::Vehicle::vehicleSpeed">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> vehicleSpeed;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="wheelSpeed" id="::Vehicle::wheelSpeed">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> wheelSpeed;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="engineSpeed" id="::Vehicle::engineSpeed">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> engineSpeed;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="powerTrainTorque" id="::Vehicle::powerTrainTorque">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> powerTrainTorque;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="acceleratorPedalPosition" id="::Vehicle::acceleratorPedalPosition">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> acceleratorPedalPosition;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="throttlePosition" id="::Vehicle::throttlePosition">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> throttlePosition;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="tripMeters" id="::Vehicle::tripMeters">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> tripMeters;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="diagnostic" id="::Vehicle::diagnostic">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> diagnostic;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="transmission" id="::Vehicle::transmission">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> transmission;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="cruiseControlStatus" id="::Vehicle::cruiseControlStatus">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> cruiseControlStatus;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="lightStatus" id="::Vehicle::lightStatus">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> lightStatus;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="interiorLightStatus" id="::Vehicle::interiorLightStatus">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> interiorLightStatus;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="chime" id="::Vehicle::chime">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> chime;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="fuel" id="::Vehicle::fuel">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> fuel;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="engineOil" id="::Vehicle::engineOil">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> engineOil;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="acceleration" id="::Vehicle::acceleration">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> acceleration;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="engineCoolant" id="::Vehicle::engineCoolant">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> engineCoolant;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="steeringWheel" id="::Vehicle::steeringWheel">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> steeringWheel;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="ignitionTime" id="::Vehicle::ignitionTime">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> ignitionTime;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="yawRate" id="::Vehicle::yawRate">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> yawRate;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="brakeOperation" id="::Vehicle::brakeOperation">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> brakeOperation;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="wheelTick" id="::Vehicle::wheelTick">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> wheelTick;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="buttonEvent" id="::Vehicle::buttonEvent">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> buttonEvent;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="drivingMode" id="::Vehicle::drivingMode">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> drivingMode;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="nightMode" id="::Vehicle::nightMode">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> nightMode;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="odometer" id="::Vehicle::odometer">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> odometer;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="transmissionOil" id="::Vehicle::transmissionOil">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> transmissionOil;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="transmissionClutch" id="::Vehicle::transmissionClutch">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> transmissionClutch;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="brakeMaintenance" id="::Vehicle::brakeMaintenance">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> brakeMaintenance;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="washerFluid" id="::Vehicle::washerFluid">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> washerFluid;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="malfunctionIndicator" id="::Vehicle::malfunctionIndicator">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> malfunctionIndicator;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="batteryStatus" id="::Vehicle::batteryStatus">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> batteryStatus;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="tire" id="::Vehicle::tire">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> tire;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="diagnostic" id="::Vehicle::diagnostic">
+      <webidl>        readonly attribute <ref>VehicleInterface</ref>       diagnostic;</webidl>
+      <Type name="VehicleInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="driverIdentification" id="::Vehicle::driverIdentification">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref>  driverIdentification;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="languageConfiguration" id="::Vehicle::languageConfiguration">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref>? languageConfiguration;</webidl>
+      <Type name="VehicleSignalInterface" nullable="nullable"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="unitsOfMeasure" id="::Vehicle::unitsOfMeasure">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref>  unitsOfMeasure;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="mirror" id="::Vehicle::mirror">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref>  mirror;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="steeringWheel" id="::Vehicle::steeringWheel">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref>  steeringWheel;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="driveMode" id="::Vehicle::driveMode">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref>  driveMode;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="seatAdjustment" id="::Vehicle::seatAdjustment">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref>  seatAdjustment;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="dashboardIllumination" id="::Vehicle::dashboardIllumination">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref>  dashboardIllumination;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="vehicleSound" id="::Vehicle::vehicleSound">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref>  vehicleSound;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="antilockBrakingSystem" id="::Vehicle::antilockBrakingSystem">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> antilockBrakingSystem;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="tractionControlSystem" id="::Vehicle::tractionControlSystem">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> tractionControlSystem;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="electronicStabilityControl" id="::Vehicle::electronicStabilityControl">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> electronicStabilityControl;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="topSpeedLimit" id="::Vehicle::topSpeedLimit">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> topSpeedLimit;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="airbagStatus" id="::Vehicle::airbagStatus">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> airbagStatus;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="door" id="::Vehicle::door">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> door;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="childSafetyLock" id="::Vehicle::childSafetyLock">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> childSafetyLock;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="seat" id="::Vehicle::seat">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> seat;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="temperature" id="::Vehicle::temperature">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> temperature;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="rainSensor" id="::Vehicle::rainSensor">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> rainSensor;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="wiperStatus" id="::Vehicle::wiperStatus">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> wiperStatus;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="wiperSetting" id="::Vehicle::wiperSetting">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> wiperSetting;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="defrost" id="::Vehicle::defrost">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> defrost;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="sunroof" id="::Vehicle::sunroof">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> sunroof;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="convertibleRoof" id="::Vehicle::convertibleRoof">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> convertibleRoof;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="sideWindow" id="::Vehicle::sideWindow">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> sideWindow;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="climateControl" id="::Vehicle::climateControl">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> climateControl;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="atmosphericPressure" id="::Vehicle::atmosphericPressure">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> atmosphericPressure;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="laneDepartureStatus" id="::Vehicle::laneDepartureStatus">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> laneDepartureStatus;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="alarm" id="::Vehicle::alarm">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> alarm;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="parkingBrake" id="::Vehicle::parkingBrake">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> parkingBrake;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="parkingLights" id="::Vehicle::parkingLights">
+      <webidl>        readonly attribute <ref>VehicleSignalInterface</ref> parkingLights;</webidl>
+      <Type name="VehicleSignalInterface"/>
+    </Attribute>
+  </Interface>
+  <Interface name="VehicleInterfaceCallback" id="::VehicleInterfaceCallback">
+    <webidl>[Callback=FunctionOnly, NoInterfaceObject]
+interface VehicleInterfaceCallback {
+        void onsuccess(object value);
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="Callback" value="FunctionOnly">
+        <webidl>Callback</webidl>
+      </ExtendedAttribute>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl> NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <Operation name="onsuccess" id="::VehicleInterfaceCallback::onsuccess">
+      <webidl>        void onsuccess(object value);</webidl>
+      <Type type="void"/>
+      <ArgumentList>
+        <Argument name="value">
+          <Type type="object"/>
+        </Argument>
+      </ArgumentList>
+    </Operation>
+  </Interface>
+  <Interface name="AvailableCallback" id="::AvailableCallback">
+    <webidl>[Callback=FunctionOnly, NoInterfaceObject]
+interface AvailableCallback {
+        void onsuccess(<ref>Availability</ref> available);
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="Callback" value="FunctionOnly">
+        <webidl>Callback</webidl>
+      </ExtendedAttribute>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl> NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <Operation name="onsuccess" id="::AvailableCallback::onsuccess">
+      <webidl>        void onsuccess(<ref>Availability</ref> available);</webidl>
+      <Type type="void"/>
+      <ArgumentList>
+        <Argument name="available">
+          <Type name="Availability"/>
+        </Argument>
+      </ArgumentList>
+    </Operation>
+  </Interface>
+  <Enum name="Availability" id="::Availability">
+    <webidl>enum Availability {
+        &quot;available&quot;, &quot;not_supported&quot;, &quot;not_supported_yet&quot;, &quot;not_supported_security_policy&quot;,
+        &quot;not_supported_business_policy&quot;, &quot;not_supported_other&quot;
+};</webidl>
+    <EnumValue stringvalue="available">
+      <webidl>        &quot;available</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="not_supported">
+      <webidl> &quot;not_supported</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="not_supported_yet">
+      <webidl> &quot;not_supported_yet</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="not_supported_security_policy">
+      <webidl> &quot;not_supported_security_policy</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="not_supported_business_policy">
+      <webidl>        &quot;not_supported_business_policy</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="not_supported_other">
+      <webidl> &quot;not_supported_other</webidl>
+    </EnumValue>
+  </Enum>
+  <Interface name="VehicleInterface" id="::VehicleInterface">
+    <webidl>[NoInterfaceObject]
+interface VehicleInterface {
+        <ref>Availability</ref> availableForRetrieval (DOMString attributeName);
+        short            availabilityChangedListener (<ref>AvailableCallback</ref> callback);
+        void         removeAvailabilityChangedListener (short handle);
+        <ref>Promise</ref>      get (optional <ref>Zone</ref> zone);
+        <ref>Promise</ref>      getHistory (Date begin, Date end, optional <ref>Zone</ref> zone);
+        readonly attribute boolean isLogged;
+        readonly attribute Date ?  from;
+        readonly attribute Date ?  to;
+        readonly attribute boolean supported;
+        readonly attribute <ref>Zone</ref>[] zones;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <Operation name="availableForRetrieval" id="::VehicleInterface::availableForRetrieval">
+      <webidl>        <ref>Availability</ref> availableForRetrieval (DOMString attributeName);</webidl>
+      <Type name="Availability"/>
+      <ArgumentList>
+        <Argument name="attributeName">
+          <Type type="DOMString"/>
+        </Argument>
+      </ArgumentList>
+    </Operation>
+    <Operation name="availabilityChangedListener" id="::VehicleInterface::availabilityChangedListener">
+      <webidl>        short            availabilityChangedListener (<ref>AvailableCallback</ref> callback);</webidl>
+      <Type type="short"/>
+      <ArgumentList>
+        <Argument name="callback">
+          <Type name="AvailableCallback"/>
+        </Argument>
+      </ArgumentList>
+    </Operation>
+    <Operation name="removeAvailabilityChangedListener" id="::VehicleInterface::removeAvailabilityChangedListener">
+      <webidl>        void         removeAvailabilityChangedListener (short handle);</webidl>
+      <Type type="void"/>
+      <ArgumentList>
+        <Argument name="handle">
+          <Type type="short"/>
+        </Argument>
+      </ArgumentList>
+    </Operation>
+    <Operation name="get" id="::VehicleInterface::get">
+      <webidl>        <ref>Promise</ref>      get (optional <ref>Zone</ref> zone);</webidl>
+      <Type name="Promise"/>
+      <ArgumentList>
+        <Argument optional="optional" name="zone">
+          <Type name="Zone"/>
+        </Argument>
+      </ArgumentList>
+    </Operation>
+    <Operation name="getHistory" id="::VehicleInterface::getHistory">
+      <webidl>        <ref>Promise</ref>      getHistory (Date begin, Date end, optional <ref>Zone</ref> zone);</webidl>
+      <Type name="Promise"/>
+      <ArgumentList>
+        <Argument name="begin">
+          <Type type="Date"/>
+        </Argument>
+        <Argument name="end">
+          <Type type="Date"/>
+        </Argument>
+        <Argument optional="optional" name="zone">
+          <Type name="Zone"/>
+        </Argument>
+      </ArgumentList>
+    </Operation>
+    <Attribute readonly="readonly" name="isLogged" id="::VehicleInterface::isLogged">
+      <webidl>        readonly attribute boolean isLogged;</webidl>
+      <Type type="boolean"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="from" id="::VehicleInterface::from">
+      <webidl>        readonly attribute Date ?  from;</webidl>
+      <Type type="Date" nullable="nullable"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="to" id="::VehicleInterface::to">
+      <webidl>        readonly attribute Date ?  to;</webidl>
+      <Type type="Date" nullable="nullable"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="supported" id="::VehicleInterface::supported">
+      <webidl>        readonly attribute boolean supported;</webidl>
+      <Type type="boolean"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="zones" id="::VehicleInterface::zones">
+      <webidl>        readonly attribute <ref>Zone</ref>[] zones;</webidl>
+      <Type type="array">
+        <Type name="Zone"/>
+      </Type>
+    </Attribute>
+  </Interface>
+  <Interface name="VehicleConfigurationInterface" id="::VehicleConfigurationInterface">
+    <webidl>[NoInterfaceObject]
+interface VehicleConfigurationInterface : <ref>VehicleInterface</ref> {};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleInterface"/>
+    </InterfaceInheritance>
+  </Interface>
+  <Interface name="VehicleSignalInterface" id="::VehicleSignalInterface">
+    <webidl>[NoInterfaceObject]
+interface VehicleSignalInterface : <ref>VehicleInterface</ref> {
+    <ref>Availability</ref>   availableForSubscription (DOMString attributeName);
+    <ref>Availability</ref>   availableForSetting (DOMString attributeName);
+        <ref>Promise</ref>        set (object value, optional <ref>Zone</ref> zone);
+        unsigned short subscribe (<ref>VehicleInterfaceCallback</ref> callback, optional <ref>Zone</ref> zone);
+        void           unsubscribe (unsigned short handle);
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleInterface"/>
+    </InterfaceInheritance>
+    <Operation name="availableForSubscription" id="::VehicleSignalInterface::availableForSubscription">
+      <webidl>    <ref>Availability</ref>   availableForSubscription (DOMString attributeName);</webidl>
+      <Type name="Availability"/>
+      <ArgumentList>
+        <Argument name="attributeName">
+          <Type type="DOMString"/>
+        </Argument>
+      </ArgumentList>
+    </Operation>
+    <Operation name="availableForSetting" id="::VehicleSignalInterface::availableForSetting">
+      <webidl>    <ref>Availability</ref>   availableForSetting (DOMString attributeName);</webidl>
+      <Type name="Availability"/>
+      <ArgumentList>
+        <Argument name="attributeName">
+          <Type type="DOMString"/>
+        </Argument>
+      </ArgumentList>
+    </Operation>
+    <Operation name="set" id="::VehicleSignalInterface::set">
+      <webidl>        <ref>Promise</ref>        set (object value, optional <ref>Zone</ref> zone);</webidl>
+      <Type name="Promise"/>
+      <ArgumentList>
+        <Argument name="value">
+          <Type type="object"/>
+        </Argument>
+        <Argument optional="optional" name="zone">
+          <Type name="Zone"/>
+        </Argument>
+      </ArgumentList>
+    </Operation>
+    <Operation name="subscribe" id="::VehicleSignalInterface::subscribe">
+      <webidl>        unsigned short subscribe (<ref>VehicleInterfaceCallback</ref> callback, optional <ref>Zone</ref> zone);</webidl>
+      <Type type="unsigned short"/>
+      <ArgumentList>
+        <Argument name="callback">
+          <Type name="VehicleInterfaceCallback"/>
+        </Argument>
+        <Argument optional="optional" name="zone">
+          <Type name="Zone"/>
+        </Argument>
+      </ArgumentList>
+    </Operation>
+    <Operation name="unsubscribe" id="::VehicleSignalInterface::unsubscribe">
+      <webidl>        void           unsubscribe (unsigned short handle);</webidl>
+      <Type type="void"/>
+      <ArgumentList>
+        <Argument name="handle">
+          <Type type="unsigned short"/>
+        </Argument>
+      </ArgumentList>
+    </Operation>
+  </Interface>
+  <Enum name="ZonePosition" id="::ZonePosition">
+    <webidl>enum ZonePosition {&quot;Front&quot;, &quot;Middle&quot;, &quot;Right&quot;, &quot;Left&quot;, &quot;Rear&quot;, &quot;Center&quot;};</webidl>
+    <EnumValue stringvalue="Front">
+      <webidl>&quot;Front</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="Middle">
+      <webidl> &quot;Middle</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="Right">
+      <webidl> &quot;Right</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="Left">
+      <webidl> &quot;Left</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="Rear">
+      <webidl> &quot;Rear</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="Center">
+      <webidl> &quot;Center</webidl>
+    </EnumValue>
+  </Enum>
+  <Interface name="Zone" id="::Zone">
+    <webidl>[NoInterfaceObject]
+interface Zone {
+                         attribute DOMString[]  value;
+        readonly attribute <ref>Zone</ref> driver;
+        boolean equals (<ref>Zone</ref> zone);
+        boolean contains (<ref>Zone</ref> zone);
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <Attribute name="value" id="::Zone::value">
+      <webidl>                         attribute DOMString[]  value;</webidl>
+      <Type type="array">
+        <Type type="DOMString"/>
+      </Type>
+    </Attribute>
+    <Attribute readonly="readonly" name="driver" id="::Zone::driver">
+      <webidl>        readonly attribute <ref>Zone</ref> driver;</webidl>
+      <Type name="Zone"/>
+    </Attribute>
+    <Operation name="equals" id="::Zone::equals">
+      <webidl>        boolean equals (<ref>Zone</ref> zone);</webidl>
+      <Type type="boolean"/>
+      <ArgumentList>
+        <Argument name="zone">
+          <Type name="Zone"/>
+        </Argument>
+      </ArgumentList>
+    </Operation>
+    <Operation name="contains" id="::Zone::contains">
+      <webidl>        boolean contains (<ref>Zone</ref> zone);</webidl>
+      <Type type="boolean"/>
+      <ArgumentList>
+        <Argument name="zone">
+          <Type name="Zone"/>
+        </Argument>
+      </ArgumentList>
+    </Operation>
+  </Interface>
+  <Enum name="VehicleError" id="::VehicleError">
+    <webidl>enum VehicleError {&quot;permission_denied&quot;, &quot;invalid_operation&quot;, &quot;timeout&quot;, &quot;invalid_zone&quot;, &quot;unknown&quot;};</webidl>
+    <EnumValue stringvalue="permission_denied">
+      <webidl>&quot;permission_denied</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="invalid_operation">
+      <webidl> &quot;invalid_operation</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="timeout">
+      <webidl> &quot;timeout</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="invalid_zone">
+      <webidl> &quot;invalid_zone</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="unknown">
+      <webidl> &quot;unknown</webidl>
+    </EnumValue>
+  </Enum>
+  <Interface name="VehicleInterfaceError" id="::VehicleInterfaceError">
+    <webidl>[NoInterfaceObject]
+interface VehicleInterfaceError {
+        readonly attribute <ref>VehicleError</ref> error;
+        readonly attribute DOMString    message;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <Attribute readonly="readonly" name="error" id="::VehicleInterfaceError::error">
+      <webidl>        readonly attribute <ref>VehicleError</ref> error;</webidl>
+      <Type name="VehicleError"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="message" id="::VehicleInterfaceError::message">
+      <webidl>        readonly attribute DOMString    message;</webidl>
+      <Type type="DOMString"/>
+    </Attribute>
+  </Interface>
+  <Interface name="VehicleCommonDataType" id="::VehicleCommonDataType">
+    <webidl>[NoInterfaceObject]
+interface VehicleCommonDataType {
+        readonly attribute <ref>DOMTimeStamp</ref>? timeStamp;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <Attribute readonly="readonly" name="timeStamp" id="::VehicleCommonDataType::timeStamp">
+      <webidl>        readonly attribute <ref>DOMTimeStamp</ref>? timeStamp;</webidl>
+      <Type name="DOMTimeStamp" nullable="nullable"/>
+    </Attribute>
+  </Interface>
+  <Enum name="VehicleTypeEnum" id="::VehicleTypeEnum">
+    <webidl>enum VehicleTypeEnum {
+        &quot;passengerCarMini&quot;, &quot;passengerCarLight&quot;, &quot;passengerCarCompact&quot;, &quot;passengerCarMedium&quot;,
+        &quot;passengerCarHeavy&quot;, &quot;sportUtilityVehicle&quot;, &quot;pickupTruck&quot;, &quot;van&quot;
+};</webidl>
+    <EnumValue stringvalue="passengerCarMini">
+      <webidl>        &quot;passengerCarMini</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="passengerCarLight">
+      <webidl> &quot;passengerCarLight</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="passengerCarCompact">
+      <webidl> &quot;passengerCarCompact</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="passengerCarMedium">
+      <webidl> &quot;passengerCarMedium</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="passengerCarHeavy">
+      <webidl>        &quot;passengerCarHeavy</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="sportUtilityVehicle">
+      <webidl> &quot;sportUtilityVehicle</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="pickupTruck">
+      <webidl> &quot;pickupTruck</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="van">
+      <webidl> &quot;van</webidl>
+    </EnumValue>
+  </Enum>
+  <Interface name="Identification" id="::Identification">
+    <webidl>[NoInterfaceObject]
+interface Identification : <ref>VehicleCommonDataType</ref> {
+        readonly attribute DOMString?       VIN;
+        readonly attribute DOMString?       WMI;
+        readonly attribute <ref>VehicleTypeEnum</ref>? vehicleType;
+        readonly attribute DOMString?       brand;
+        readonly attribute DOMString?       model;
+        readonly attribute unsigned short?  year;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="VIN" id="::Identification::VIN">
+      <webidl>        readonly attribute DOMString?       VIN;</webidl>
+      <Type type="DOMString" nullable="nullable"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="WMI" id="::Identification::WMI">
+      <webidl>        readonly attribute DOMString?       WMI;</webidl>
+      <Type type="DOMString" nullable="nullable"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="vehicleType" id="::Identification::vehicleType">
+      <webidl>        readonly attribute <ref>VehicleTypeEnum</ref>? vehicleType;</webidl>
+      <Type name="VehicleTypeEnum" nullable="nullable"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="brand" id="::Identification::brand">
+      <webidl>        readonly attribute DOMString?       brand;</webidl>
+      <Type type="DOMString" nullable="nullable"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="model" id="::Identification::model">
+      <webidl>        readonly attribute DOMString?       model;</webidl>
+      <Type type="DOMString" nullable="nullable"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="year" id="::Identification::year">
+      <webidl>        readonly attribute unsigned short?  year;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
+    </Attribute>
+  </Interface>
+  <Interface name="SizeConfiguration" id="::SizeConfiguration">
+    <webidl>[NoInterfaceObject]
+interface SizeConfiguration : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short?   width;
+        readonly attribute unsigned short?   height;
+        readonly attribute unsigned short?   length;
+        readonly attribute unsigned short[]? doorsCount;
+        readonly attribute unsigned short?   totalDoors;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="width" id="::SizeConfiguration::width">
+      <webidl>        readonly attribute unsigned short?   width;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="height" id="::SizeConfiguration::height">
+      <webidl>        readonly attribute unsigned short?   height;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="length" id="::SizeConfiguration::length">
+      <webidl>        readonly attribute unsigned short?   length;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="doorsCount" id="::SizeConfiguration::doorsCount">
+      <webidl>        readonly attribute unsigned short[]? doorsCount;</webidl>
+      <Type type="array" nullable="nullable">
+        <Type type="unsigned short"/>
+      </Type>
+    </Attribute>
+    <Attribute readonly="readonly" name="totalDoors" id="::SizeConfiguration::totalDoors">
+      <webidl>        readonly attribute unsigned short?   totalDoors;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
+    </Attribute>
+  </Interface>
+  <Enum name="FuelTypeEnum" id="::FuelTypeEnum">
+    <webidl>enum FuelTypeEnum {
+        &quot;gasoline&quot;, &quot;methanol&quot;, &quot;ethanol&quot;, &quot;diesel&quot;, &quot;lpg&quot;, &quot;cng&quot;, &quot;electric&quot;
+};</webidl>
+    <EnumValue stringvalue="gasoline">
+      <webidl>        &quot;gasoline</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="methanol">
+      <webidl> &quot;methanol</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="ethanol">
+      <webidl> &quot;ethanol</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="diesel">
+      <webidl> &quot;diesel</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="lpg">
+      <webidl> &quot;lpg</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="cng">
+      <webidl> &quot;cng</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="electric">
+      <webidl> &quot;electric</webidl>
+    </EnumValue>
+  </Enum>
+  <Interface name="FuelConfiguration" id="::FuelConfiguration">
+    <webidl>[NoInterfaceObject]
+interface FuelConfiguration : <ref>VehicleCommonDataType</ref> {
+        readonly attribute <ref>FuelTypeEnum</ref>[]? fuelType;
+        readonly attribute <ref>Zone</ref>?           refuelPosition;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="fuelType" id="::FuelConfiguration::fuelType">
+      <webidl>        readonly attribute <ref>FuelTypeEnum</ref>[]? fuelType;</webidl>
+      <Type type="array" nullable="nullable">
+        <Type name="FuelTypeEnum"/>
+      </Type>
+    </Attribute>
+    <Attribute readonly="readonly" name="refuelPosition" id="::FuelConfiguration::refuelPosition">
+      <webidl>        readonly attribute <ref>Zone</ref>?           refuelPosition;</webidl>
+      <Type name="Zone" nullable="nullable"/>
+    </Attribute>
+  </Interface>
+  <Enum name="TransmissionGearTypeEnum" id="::TransmissionGearTypeEnum">
+    <webidl>enum TransmissionGearTypeEnum {&quot;auto&quot;, &quot;manual&quot;};</webidl>
+    <EnumValue stringvalue="auto">
+      <webidl>&quot;auto</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="manual">
+      <webidl> &quot;manual</webidl>
+    </EnumValue>
+  </Enum>
+  <Interface name="TransmissionConfiguration" id="::TransmissionConfiguration">
+    <webidl>[NoInterfaceObject]
+interface TransmissionConfiguration : <ref>VehicleCommonDataType</ref> {
+        readonly attribute <ref>TransmissionGearTypeEnum</ref>? transmissionGearType;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="transmissionGearType" id="::TransmissionConfiguration::transmissionGearType">
+      <webidl>        readonly attribute <ref>TransmissionGearTypeEnum</ref>? transmissionGearType;</webidl>
+      <Type name="TransmissionGearTypeEnum" nullable="nullable"/>
+    </Attribute>
+  </Interface>
+  <Interface name="WheelConfiguration" id="::WheelConfiguration">
+    <webidl>[NoInterfaceObject]
+interface WheelConfiguration : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short? wheelRadius;
+                     attribute <ref>Zone</ref>?           zone;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="wheelRadius" id="::WheelConfiguration::wheelRadius">
+      <webidl>        readonly attribute unsigned short? wheelRadius;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
+    </Attribute>
+    <Attribute name="zone" id="::WheelConfiguration::zone">
+      <webidl>                     attribute <ref>Zone</ref>?           zone;</webidl>
+      <Type name="Zone" nullable="nullable"/>
+    </Attribute>
+  </Interface>
+  <Interface name="SteeringWheelConfiguration" id="::SteeringWheelConfiguration">
+    <webidl>[NoInterfaceObject]
+interface SteeringWheelConfiguration : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean? steeringWheelLeft;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="steeringWheelLeft" id="::SteeringWheelConfiguration::steeringWheelLeft">
+      <webidl>        readonly attribute boolean? steeringWheelLeft;</webidl>
+      <Type type="boolean" nullable="nullable"/>
+    </Attribute>
+  </Interface>
+  <Interface name="VehicleSpeed" id="::VehicleSpeed">
+    <webidl>[NoInterfaceObject]
+interface VehicleSpeed : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short speed;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="speed" id="::VehicleSpeed::speed">
+      <webidl>        readonly attribute unsigned short speed;</webidl>
+      <Type type="unsigned short"/>
+    </Attribute>
+  </Interface>
+  <Interface name="WheelSpeed" id="::WheelSpeed">
+    <webidl>[NoInterfaceObject]
+interface WheelSpeed : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short speed;
+                     attribute <ref>Zone</ref>?          zone;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="speed" id="::WheelSpeed::speed">
+      <webidl>        readonly attribute unsigned short speed;</webidl>
+      <Type type="unsigned short"/>
+    </Attribute>
+    <Attribute name="zone" id="::WheelSpeed::zone">
+      <webidl>                     attribute <ref>Zone</ref>?          zone;</webidl>
+      <Type name="Zone" nullable="nullable"/>
+    </Attribute>
+  </Interface>
+  <Interface name="EngineSpeed" id="::EngineSpeed">
+    <webidl>[NoInterfaceObject]
+interface EngineSpeed : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned long speed;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="speed" id="::EngineSpeed::speed">
+      <webidl>        readonly attribute unsigned long speed;</webidl>
+      <Type type="unsigned long"/>
+    </Attribute>
+  </Interface>
+  <Interface name="PowerTrainTorque" id="::PowerTrainTorque">
+    <webidl>[NoInterfaceObject]
+interface PowerTrainTorque : <ref>VehicleCommonDataType</ref> {
+        readonly attribute short value;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="value" id="::PowerTrainTorque::value">
+      <webidl>        readonly attribute short value;</webidl>
+      <Type type="short"/>
+    </Attribute>
+  </Interface>
+  <Interface name="AcceleratorPedalPosition" id="::AcceleratorPedalPosition">
+    <webidl>[NoInterfaceObject]
+interface AcceleratorPedalPosition : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short value;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="value" id="::AcceleratorPedalPosition::value">
+      <webidl>        readonly attribute unsigned short value;</webidl>
+      <Type type="unsigned short"/>
+    </Attribute>
+  </Interface>
+  <Interface name="ThrottlePosition" id="::ThrottlePosition">
+    <webidl>[NoInterfaceObject]
+interface ThrottlePosition : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short value;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="value" id="::ThrottlePosition::value">
+      <webidl>        readonly attribute unsigned short value;</webidl>
+      <Type type="unsigned short"/>
+    </Attribute>
+  </Interface>
+  <Interface name="Trip" id="::Trip">
+    <webidl>[NoInterfaceObject]
+interface Trip {
+        readonly attribute unsigned long   distance;
+        readonly attribute unsigned short? averageSpeed;
+        readonly attribute unsigned short? fuelConsumption;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <Attribute readonly="readonly" name="distance" id="::Trip::distance">
+      <webidl>        readonly attribute unsigned long   distance;</webidl>
+      <Type type="unsigned long"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="averageSpeed" id="::Trip::averageSpeed">
+      <webidl>        readonly attribute unsigned short? averageSpeed;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="fuelConsumption" id="::Trip::fuelConsumption">
+      <webidl>        readonly attribute unsigned short? fuelConsumption;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
+    </Attribute>
+  </Interface>
+  <Interface name="TripMeters" id="::TripMeters">
+    <webidl>[NoInterfaceObject]
+interface TripMeters : <ref>VehicleCommonDataType</ref> {
+        readonly attribute <ref>Trip</ref>[] meters;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="meters" id="::TripMeters::meters">
+      <webidl>        readonly attribute <ref>Trip</ref>[] meters;</webidl>
+      <Type type="array">
+        <Type name="Trip"/>
+      </Type>
+    </Attribute>
+  </Interface>
+  <Interface name="Diagnostic" id="::Diagnostic">
+    <webidl>[NoInterfaceObject]
+interface Diagnostic : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned long accumulatedEngineRuntime;
+        readonly attribute unsigned long distanceWithMILOn;
+        readonly attribute unsigned long distanceSinceCodeCleared;
+        readonly attribute unsigned long timeRunMILOn;
+        readonly attribute unsigned long timeTroubleCodeClear;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="accumulatedEngineRuntime" id="::Diagnostic::accumulatedEngineRuntime">
+      <webidl>        readonly attribute unsigned long accumulatedEngineRuntime;</webidl>
+      <Type type="unsigned long"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="distanceWithMILOn" id="::Diagnostic::distanceWithMILOn">
+      <webidl>        readonly attribute unsigned long distanceWithMILOn;</webidl>
+      <Type type="unsigned long"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="distanceSinceCodeCleared" id="::Diagnostic::distanceSinceCodeCleared">
+      <webidl>        readonly attribute unsigned long distanceSinceCodeCleared;</webidl>
+      <Type type="unsigned long"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="timeRunMILOn" id="::Diagnostic::timeRunMILOn">
+      <webidl>        readonly attribute unsigned long timeRunMILOn;</webidl>
+      <Type type="unsigned long"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="timeTroubleCodeClear" id="::Diagnostic::timeTroubleCodeClear">
+      <webidl>        readonly attribute unsigned long timeTroubleCodeClear;</webidl>
+      <Type type="unsigned long"/>
+    </Attribute>
+  </Interface>
+  <Enum name="TransmissionMode" id="::TransmissionMode">
+    <webidl>enum TransmissionMode {&quot;park&quot;, &quot;reverse&quot;, &quot;neutral&quot;, &quot;low&quot;, &quot;drive&quot;, &quot;overdrive&quot;};</webidl>
+    <EnumValue stringvalue="park">
+      <webidl>&quot;park</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="reverse">
+      <webidl> &quot;reverse</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="neutral">
+      <webidl> &quot;neutral</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="low">
+      <webidl> &quot;low</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="drive">
+      <webidl> &quot;drive</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="overdrive">
+      <webidl> &quot;overdrive</webidl>
+    </EnumValue>
+  </Enum>
+  <Interface name="Transmission" id="::Transmission">
+    <webidl>[NoInterfaceObject]
+interface Transmission : <ref>VehicleCommonDataType</ref> {
+        readonly attribute octet?            gear;
+        readonly attribute <ref>TransmissionMode</ref>? mode;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="gear" id="::Transmission::gear">
+      <webidl>        readonly attribute octet?            gear;</webidl>
+      <Type type="octet" nullable="nullable"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="mode" id="::Transmission::mode">
+      <webidl>        readonly attribute <ref>TransmissionMode</ref>? mode;</webidl>
+      <Type name="TransmissionMode" nullable="nullable"/>
+    </Attribute>
+  </Interface>
+  <Interface name="CruiseControlStatus" id="::CruiseControlStatus">
+    <webidl>[NoInterfaceObject]
+interface CruiseControlStatus : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean        status;
+        readonly attribute unsigned short speed;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="status" id="::CruiseControlStatus::status">
+      <webidl>        readonly attribute boolean        status;</webidl>
+      <Type type="boolean"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="speed" id="::CruiseControlStatus::speed">
+      <webidl>        readonly attribute unsigned short speed;</webidl>
+      <Type type="unsigned short"/>
+    </Attribute>
+  </Interface>
+  <Interface name="LightStatus" id="::LightStatus">
+    <webidl>[NoInterfaceObject]
+interface LightStatus : <ref>VehicleCommonDataType</ref> {
+        attribute boolean  head;
+        attribute boolean  rightTurn;
+        attribute boolean  leftTurn;
+        attribute boolean  brake;
+        attribute boolean? fog;
+        attribute boolean  hazard;
+        attribute boolean  parking;
+        attribute boolean  highBeam;
+        attribute boolean? automaticHeadlights;
+        attribute boolean? dynamicHighBeam;
+        attribute <ref>Zone</ref>?    zone;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute name="head" id="::LightStatus::head">
+      <webidl>        attribute boolean  head;</webidl>
+      <Type type="boolean"/>
+    </Attribute>
+    <Attribute name="rightTurn" id="::LightStatus::rightTurn">
+      <webidl>        attribute boolean  rightTurn;</webidl>
+      <Type type="boolean"/>
+    </Attribute>
+    <Attribute name="leftTurn" id="::LightStatus::leftTurn">
+      <webidl>        attribute boolean  leftTurn;</webidl>
+      <Type type="boolean"/>
+    </Attribute>
+    <Attribute name="brake" id="::LightStatus::brake">
+      <webidl>        attribute boolean  brake;</webidl>
+      <Type type="boolean"/>
+    </Attribute>
+    <Attribute name="fog" id="::LightStatus::fog">
+      <webidl>        attribute boolean? fog;</webidl>
+      <Type type="boolean" nullable="nullable"/>
+    </Attribute>
+    <Attribute name="hazard" id="::LightStatus::hazard">
+      <webidl>        attribute boolean  hazard;</webidl>
+      <Type type="boolean"/>
+    </Attribute>
+    <Attribute name="parking" id="::LightStatus::parking">
+      <webidl>        attribute boolean  parking;</webidl>
+      <Type type="boolean"/>
+    </Attribute>
+    <Attribute name="highBeam" id="::LightStatus::highBeam">
+      <webidl>        attribute boolean  highBeam;</webidl>
+      <Type type="boolean"/>
+    </Attribute>
+    <Attribute name="automaticHeadlights" id="::LightStatus::automaticHeadlights">
+      <webidl>        attribute boolean? automaticHeadlights;</webidl>
+      <Type type="boolean" nullable="nullable"/>
+    </Attribute>
+    <Attribute name="dynamicHighBeam" id="::LightStatus::dynamicHighBeam">
+      <webidl>        attribute boolean? dynamicHighBeam;</webidl>
+      <Type type="boolean" nullable="nullable"/>
+    </Attribute>
+    <Attribute name="zone" id="::LightStatus::zone">
+      <webidl>        attribute <ref>Zone</ref>?    zone;</webidl>
+      <Type name="Zone" nullable="nullable"/>
+    </Attribute>
+  </Interface>
+  <Interface name="InteriorLightStatus" id="::InteriorLightStatus">
+    <webidl>[NoInterfaceObject]
+interface InteriorLightStatus : <ref>VehicleCommonDataType</ref> {
+        attribute boolean status;
+        attribute <ref>Zone</ref>?   zone;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute name="status" id="::InteriorLightStatus::status">
+      <webidl>        attribute boolean status;</webidl>
+      <Type type="boolean"/>
+    </Attribute>
+    <Attribute name="zone" id="::InteriorLightStatus::zone">
+      <webidl>        attribute <ref>Zone</ref>?   zone;</webidl>
+      <Type name="Zone" nullable="nullable"/>
+    </Attribute>
+  </Interface>
+  <Interface name="Horn" id="::Horn">
+    <webidl>[NoInterfaceObject]
+interface Horn : <ref>VehicleCommonDataType</ref> {
+        attribute boolean status;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute name="status" id="::Horn::status">
+      <webidl>        attribute boolean status;</webidl>
+      <Type type="boolean"/>
+    </Attribute>
+  </Interface>
+  <Interface name="Chime" id="::Chime">
+    <webidl>[NoInterfaceObject]
+interface Chime : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean status;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="status" id="::Chime::status">
+      <webidl>        readonly attribute boolean status;</webidl>
+      <Type type="boolean"/>
+    </Attribute>
+  </Interface>
+  <Interface name="Fuel" id="::Fuel">
+    <webidl>[NoInterfaceObject]
+interface Fuel : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short level;
+        readonly attribute unsigned long  range;
+        readonly attribute unsigned long  instantConsumption;
+        readonly attribute unsigned long  averageConsumption;
+        readonly attribute unsigned long  fuelConsumedSinceRestart;
+        readonly attribute unsigned long  vehicleTimeSinceRestart;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="level" id="::Fuel::level">
+      <webidl>        readonly attribute unsigned short level;</webidl>
+      <Type type="unsigned short"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="range" id="::Fuel::range">
+      <webidl>        readonly attribute unsigned long  range;</webidl>
+      <Type type="unsigned long"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="instantConsumption" id="::Fuel::instantConsumption">
+      <webidl>        readonly attribute unsigned long  instantConsumption;</webidl>
+      <Type type="unsigned long"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="averageConsumption" id="::Fuel::averageConsumption">
+      <webidl>        readonly attribute unsigned long  averageConsumption;</webidl>
+      <Type type="unsigned long"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="fuelConsumedSinceRestart" id="::Fuel::fuelConsumedSinceRestart">
+      <webidl>        readonly attribute unsigned long  fuelConsumedSinceRestart;</webidl>
+      <Type type="unsigned long"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="vehicleTimeSinceRestart" id="::Fuel::vehicleTimeSinceRestart">
+      <webidl>        readonly attribute unsigned long  vehicleTimeSinceRestart;</webidl>
+      <Type type="unsigned long"/>
+    </Attribute>
+  </Interface>
+  <Interface name="EngineOil" id="::EngineOil">
+    <webidl>[NoInterfaceObject]
+interface EngineOil : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short level;
+        readonly attribute unsigned short lifeRemaining;
+        readonly attribute long           temperature;
+        readonly attribute unsigned short pressure;
+        readonly attribute boolean        change;
+};</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
         <webidl>NoInterfaceObject</webidl>
       </ExtendedAttribute>
     </ExtendedAttributeList>
-    <Attribute readonly="readonly" name="vehicle" id="::VehicleManagerObject::vehicle">
-      <webidl>    readonly attribute <ref>Vehicle</ref> vehicle;</webidl>
-      <Type name="Vehicle"/>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="level" id="::EngineOil::level">
+      <webidl>        readonly attribute unsigned short level;</webidl>
+      <Type type="unsigned short"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="lifeRemaining" id="::EngineOil::lifeRemaining">
+      <webidl>        readonly attribute unsigned short lifeRemaining;</webidl>
+      <Type type="unsigned short"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="temperature" id="::EngineOil::temperature">
+      <webidl>        readonly attribute long           temperature;</webidl>
+      <Type type="long"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="pressure" id="::EngineOil::pressure">
+      <webidl>        readonly attribute unsigned short pressure;</webidl>
+      <Type type="unsigned short"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="change" id="::EngineOil::change">
+      <webidl>        readonly attribute boolean        change;</webidl>
+      <Type type="boolean"/>
     </Attribute>
   </Interface>
-  <Implements name1="Tizen" name2="VehicleManagerObject">
-    <webidl><ref>Tizen</ref> implements <ref>VehicleManagerObject</ref>;</webidl>
-  </Implements>
-  <Interface name="VehiclePropertyType" id="::VehiclePropertyType">
+  <Interface name="Acceleration" id="::Acceleration">
     <webidl>[NoInterfaceObject]
-interface VehiclePropertyType: <ref>Event</ref> { 
-         attribute <ref>DOMTimeStamp</ref> time;
-         attribute short zone;
-         attribute DOMString source;
+interface Acceleration : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned long x;
+        readonly attribute unsigned long y;
+        readonly attribute unsigned long z;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -961,381 +2124,89 @@ interface VehiclePropertyType: <ref>Event</ref> {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="Event"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="time" id="::VehiclePropertyType::time">
-      <webidl>         attribute <ref>DOMTimeStamp</ref> time;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Time
-          </p>
-         </description>
-          <brief>
- time at which the vehicle generated the property
-          </brief>
-      </descriptive>
-      <Type name="DOMTimeStamp"/>
+    <Attribute readonly="readonly" name="x" id="::Acceleration::x">
+      <webidl>        readonly attribute unsigned long x;</webidl>
+      <Type type="unsigned long"/>
     </Attribute>
-    <Attribute name="zone" id="::VehiclePropertyType::zone">
-      <webidl>         attribute short zone;</webidl>
-      <Type type="short"/>
+    <Attribute readonly="readonly" name="y" id="::Acceleration::y">
+      <webidl>        readonly attribute unsigned long y;</webidl>
+      <Type type="unsigned long"/>
     </Attribute>
-    <Attribute name="source" id="::VehiclePropertyType::source">
-      <webidl>         attribute DOMString source;</webidl>
-      <Type type="DOMString"/>
+    <Attribute readonly="readonly" name="z" id="::Acceleration::z">
+      <webidl>        readonly attribute unsigned long z;</webidl>
+      <Type type="unsigned long"/>
     </Attribute>
   </Interface>
-  <Interface name="VehiclePropertyError" id="::VehiclePropertyError">
+  <Interface name="EngineCoolant" id="::EngineCoolant">
     <webidl>[NoInterfaceObject]
-interface VehiclePropertyError   { 
-        const unsigned short PERMISSION_DENIED = 1; 
-        const unsigned short PROPERTY_UNAVAILABLE = 2; 
-        const unsigned short TIMEOUT = 3; 
-        const unsigned short UNKNOWN = 10;
-        
-         attribute unsigned short code;
-
-         attribute DOMString message;
+interface EngineCoolant : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short level;
+        readonly attribute unsigned short temperature;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
         <webidl>NoInterfaceObject</webidl>
       </ExtendedAttribute>
     </ExtendedAttributeList>
-    <Const name="PERMISSION_DENIED" value="1" id="::VehiclePropertyError::PERMISSION_DENIED">
-      <webidl>        const unsigned short PERMISSION_DENIED = 1;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="PROPERTY_UNAVAILABLE" value="2" id="::VehiclePropertyError::PROPERTY_UNAVAILABLE">
-      <webidl>        const unsigned short PROPERTY_UNAVAILABLE = 2;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="TIMEOUT" value="3" id="::VehiclePropertyError::TIMEOUT">
-      <webidl>        const unsigned short TIMEOUT = 3;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="UNKNOWN" value="10" id="::VehiclePropertyError::UNKNOWN">
-      <webidl>        const unsigned short UNKNOWN = 10;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Attribute name="code" id="::VehiclePropertyError::code">
-      <webidl>         attribute unsigned short code;</webidl>
-      <descriptive>
-         <description>
-          <p>
-code
-MUST return error code. 
-          </p>
-         </description>
-      </descriptive>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="level" id="::EngineCoolant::level">
+      <webidl>        readonly attribute unsigned short level;</webidl>
       <Type type="unsigned short"/>
     </Attribute>
-    <Attribute name="message" id="::VehiclePropertyError::message">
-      <webidl>         attribute DOMString message;</webidl>
-      <descriptive>
-         <description>
-          <p>
-message
-MUST return error message 
-          </p>
-         </description>
-      </descriptive>
-      <Type type="DOMString"/>
+    <Attribute readonly="readonly" name="temperature" id="::EngineCoolant::temperature">
+      <webidl>        readonly attribute unsigned short temperature;</webidl>
+      <Type type="unsigned short"/>
     </Attribute>
   </Interface>
-  <Callback name="VehiclePropertyCallback" id="::VehiclePropertyCallback">
-    <webidl>callback VehiclePropertyCallback = void (<ref>VehiclePropertyType</ref> value);</webidl>
-    <Type type="void"/>
-    <ArgumentList>
-      <Argument name="value">
-        <Type name="VehiclePropertyType"/>
-      </Argument>
-    </ArgumentList>
-  </Callback>
-  <Callback name="VehiclePropertyErrorCallback" id="::VehiclePropertyErrorCallback">
-    <webidl>callback VehiclePropertyErrorCallback = void (<ref>VehiclePropertyError</ref> error);</webidl>
-    <Type type="void"/>
-    <ArgumentList>
-      <Argument name="error">
-        <Type name="VehiclePropertyError"/>
-      </Argument>
-    </ArgumentList>
-  </Callback>
-  <Callback name="VehiclePropertyListCallback" id="::VehiclePropertyListCallback">
-    <webidl>callback VehiclePropertyListCallback = void (sequence&lt;<ref>VehiclePropertyType</ref>> values);</webidl>
-    <Type type="void"/>
-    <ArgumentList>
-      <Argument name="values">
-        <Type type="sequence">
-          <Type name="VehiclePropertyType"/>
-        </Type>
-      </Argument>
-    </ArgumentList>
-  </Callback>
-  <Callback name="SupportedPropertiesCallback" id="::SupportedPropertiesCallback">
-    <webidl>callback SupportedPropertiesCallback = void (sequence&lt;DOMString> properties);</webidl>
-    <Type type="void"/>
-    <ArgumentList>
-      <Argument name="properties">
-        <Type type="sequence">
-          <Type type="DOMString"/>
-        </Type>
-      </Argument>
-    </ArgumentList>
-  </Callback>
-  <Interface name="Vehicle" id="::Vehicle">
+  <Interface name="SteeringWheel" id="::SteeringWheel">
     <webidl>[NoInterfaceObject]
-interface Vehicle  { 
-
-        const unsigned short ZONE_None = 0;
-        const unsigned short ZONE_Front = 1;
-        const unsigned short ZONE_Middle = 0x10;
-        const unsigned short ZONE_Right = 0x100;
-        const unsigned short ZONE_Left = 0x1000;
-        const unsigned short ZONE_Rear = 0x10000;
-        const unsigned short ZONE_Center = 0x10000;
-
-        sequence&lt;DOMString> supported();
-
-        any get(DOMString objectType, optional short zone);
-
-
-        void subscribe(DOMString objectType, <ref>VehiclePropertyCallback</ref> successCallback, optional unsigned short zone, optional <ref>VehiclePropertyErrorCallback</ref> errorCallback);
-
-        void set(DOMString objectType, <ref>VehiclePropertyType</ref> value, optional <ref>VehiclePropertyErrorCallback</ref> errorCallback);
-
-        void getHistory(DOMString objectType, unsigned short zone, Date startTime, Date endTime, <ref>VehiclePropertyListCallback</ref> successCallback, optional <ref>VehiclePropertyErrorCallback</ref> errorCallback);
-
-        sequence&lt;unsigned short> listZones(DOMString objectType);
+interface SteeringWheel : <ref>VehicleCommonDataType</ref> {
+        readonly attribute short angle;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
         <webidl>NoInterfaceObject</webidl>
       </ExtendedAttribute>
     </ExtendedAttributeList>
-    <Const name="ZONE_None" value="0" id="::Vehicle::ZONE_None">
-      <webidl>        const unsigned short ZONE_None = 0;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="ZONE_Front" value="1" id="::Vehicle::ZONE_Front">
-      <webidl>        const unsigned short ZONE_Front = 1;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="ZONE_Middle" value="0x10" id="::Vehicle::ZONE_Middle">
-      <webidl>        const unsigned short ZONE_Middle = 0x10;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="ZONE_Right" value="0x100" id="::Vehicle::ZONE_Right">
-      <webidl>        const unsigned short ZONE_Right = 0x100;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="ZONE_Left" value="0x1000" id="::Vehicle::ZONE_Left">
-      <webidl>        const unsigned short ZONE_Left = 0x1000;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="ZONE_Rear" value="0x10000" id="::Vehicle::ZONE_Rear">
-      <webidl>        const unsigned short ZONE_Rear = 0x10000;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="ZONE_Center" value="0x10000" id="::Vehicle::ZONE_Center">
-      <webidl>        const unsigned short ZONE_Center = 0x10000;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Operation name="supported" id="::Vehicle::supported">
-      <webidl>        sequence&lt;DOMString> supported();</webidl>
-      <descriptive>
-          <brief>
- returns supported object types
-          </brief>
-      </descriptive>
-      <Type type="sequence">
-        <Type type="DOMString"/>
-      </Type>
-      <ArgumentList/>
-    </Operation>
-    <Operation name="get" id="::Vehicle::get">
-      <webidl>        any get(DOMString objectType, optional short zone);</webidl>
-      <descriptive>
-          <brief>
- fetch the current value for 'objectType'.  
-          </brief>
-      </descriptive>
-      <Type type="any">
-        <descriptive>
-            <description><p>
- object representing the requested 'objectType'
-            </p></description>
-        </descriptive>
-      </Type>
-      <ArgumentList>
-        <Argument name="objectType">
-          <descriptive>
-              <description><p>
- is the requested property to be retrieved.
-              </p></description>
-          </descriptive>
-          <Type type="DOMString"/>
-        </Argument>
-        <Argument optional="optional" name="zone">
-          <descriptive>
-              <description><p>
- specify the zone in which this object type is in
-              </p></description>
-          </descriptive>
-          <Type type="short"/>
-        </Argument>
-      </ArgumentList>
-    </Operation>
-    <Operation name="subscribe" id="::Vehicle::subscribe">
-      <webidl>        void subscribe(DOMString objectType, <ref>VehiclePropertyCallback</ref> successCallback, optional unsigned short zone, optional <ref>VehiclePropertyErrorCallback</ref> errorCallback);</webidl>
-      <descriptive>
-          <brief>
- subscribe to the given property and get callbacks when it changes
-          </brief>
-      </descriptive>
-      <Type type="void"/>
-      <ArgumentList>
-        <Argument name="objectType">
-          <descriptive>
-              <description><p>
- property to set
-              </p></description>
-          </descriptive>
-          <Type type="DOMString"/>
-        </Argument>
-        <Argument name="successCallback">
-          <descriptive>
-              <description><p>
- callback will be called when the &quot;objectType&quot; changes
-              </p></description>
-          </descriptive>
-          <Type name="VehiclePropertyCallback"/>
-        </Argument>
-        <Argument optional="optional" name="zone">
-          <Type type="unsigned short"/>
-        </Argument>
-        <Argument optional="optional" name="errorCallback">
-          <descriptive>
-              <description><p>
- callback if error has been called.
-              </p></description>
-          </descriptive>
-          <Type name="VehiclePropertyErrorCallback"/>
-        </Argument>
-      </ArgumentList>
-    </Operation>
-    <Operation name="set" id="::Vehicle::set">
-      <webidl>        void set(DOMString objectType, <ref>VehiclePropertyType</ref> value, optional <ref>VehiclePropertyErrorCallback</ref> errorCallback);</webidl>
-      <descriptive>
-          <brief>
- set the given objectType to value
-          </brief>
-      </descriptive>
-      <Type type="void"/>
-      <ArgumentList>
-        <Argument name="objectType">
-          <descriptive>
-              <description><p>
- object type to set
-              </p></description>
-          </descriptive>
-          <Type type="DOMString"/>
-        </Argument>
-        <Argument name="value">
-          <descriptive>
-              <description><p>
- value to set, should contain zone information ie &quot;zone&quot; : 0
-              </p></description>
-          </descriptive>
-          <Type name="VehiclePropertyType"/>
-        </Argument>
-        <Argument optional="optional" name="errorCallback">
-          <descriptive>
-              <description><p>
- callback if error has been called.
-              </p></description>
-          </descriptive>
-          <Type name="VehiclePropertyErrorCallback"/>
-        </Argument>
-      </ArgumentList>
-    </Operation>
-    <Operation name="getHistory" id="::Vehicle::getHistory">
-      <webidl>        void getHistory(DOMString objectType, unsigned short zone, Date startTime, Date endTime, <ref>VehiclePropertyListCallback</ref> successCallback, optional <ref>VehiclePropertyErrorCallback</ref> errorCallback);</webidl>
-      <descriptive>
-          <brief>
- get values for a given objectType within a certain past time period between 'startTime' and 'endTime'
-          </brief>
-      </descriptive>
-      <Type type="void"/>
-      <ArgumentList>
-        <Argument name="objectType">
-          <descriptive>
-              <description><p>
- object type to request
-              </p></description>
-          </descriptive>
-          <Type type="DOMString"/>
-        </Argument>
-        <Argument name="zone">
-          <descriptive>
-              <description><p>
- in which the objectType is located or 0 if no zone.
-              </p></description>
-          </descriptive>
-          <Type type="unsigned short"/>
-        </Argument>
-        <Argument name="startTime">
-          <descriptive>
-              <description><p>
- starting period of time.
-              </p></description>
-          </descriptive>
-          <Type type="Date"/>
-        </Argument>
-        <Argument name="endTime">
-          <descriptive>
-              <description><p>
- ending period of time.
-              </p></description>
-          </descriptive>
-          <Type type="Date"/>
-        </Argument>
-        <Argument name="successCallback">
-          <descriptive>
-              <description><p>
- Callback with the result of the method call
-              </p></description>
-          </descriptive>
-          <Type name="VehiclePropertyListCallback"/>
-        </Argument>
-        <Argument optional="optional" name="errorCallback">
-          <descriptive>
-              <description><p>
- Callback if an error has occurred.
-              </p></description>
-          </descriptive>
-          <Type name="VehiclePropertyErrorCallback"/>
-        </Argument>
-      </ArgumentList>
-    </Operation>
-    <Operation name="listZones" id="::Vehicle::listZones">
-      <webidl>        sequence&lt;unsigned short> listZones(DOMString objectType);</webidl>
-      <Type type="sequence">
-        <Type type="unsigned short"/>
-      </Type>
-      <ArgumentList>
-        <Argument name="objectType">
-          <Type type="DOMString"/>
-        </Argument>
-      </ArgumentList>
-    </Operation>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="angle" id="::SteeringWheel::angle">
+      <webidl>        readonly attribute short angle;</webidl>
+      <Type type="short"/>
+    </Attribute>
+  </Interface>
+  <Interface name="IgnitionTime" id="::IgnitionTime">
+    <webidl>[NoInterfaceObject]
+interface IgnitionTime : <ref>VehicleCommonDataType</ref> {
+        readonly attribute <ref>DOMTimeStamp</ref> ignitionOnTime;
+        readonly attribute <ref>DOMTimeStamp</ref> ignitionOffTime;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="ignitionOnTime" id="::IgnitionTime::ignitionOnTime">
+      <webidl>        readonly attribute <ref>DOMTimeStamp</ref> ignitionOnTime;</webidl>
+      <Type name="DOMTimeStamp"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="ignitionOffTime" id="::IgnitionTime::ignitionOffTime">
+      <webidl>        readonly attribute <ref>DOMTimeStamp</ref> ignitionOffTime;</webidl>
+      <Type name="DOMTimeStamp"/>
+    </Attribute>
   </Interface>
-  <Interface name="VehicleSpeed" id="::VehicleSpeed">
+  <Interface name="YawRate" id="::YawRate">
     <webidl>[NoInterfaceObject]
-interface VehicleSpeed : <ref>VehiclePropertyType</ref>  { 
-
-         attribute unsigned long vehicleSpeed;
+interface YawRate : <ref>VehicleCommonDataType</ref> {
+        readonly attribute short value;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -1343,28 +2214,17 @@ interface VehicleSpeed : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="vehicleSpeed" id="::VehicleSpeed::vehicleSpeed">
-      <webidl>         attribute unsigned long vehicleSpeed;</webidl>
-      <descriptive>
-         <description>
-          <p>
-VehicleSpeed
-          </p>
-         </description>
-          <brief>
-  Must return Vehicle Speed in kilometers per hour.
-          </brief>
-      </descriptive>
-      <Type type="unsigned long"/>
+    <Attribute readonly="readonly" name="value" id="::YawRate::value">
+      <webidl>        readonly attribute short value;</webidl>
+      <Type type="short"/>
     </Attribute>
   </Interface>
-  <Interface name="EngineSpeed" id="::EngineSpeed">
+  <Interface name="BrakeOperation" id="::BrakeOperation">
     <webidl>[NoInterfaceObject]
-interface EngineSpeed : <ref>VehiclePropertyType</ref>  { 
-
-         attribute unsigned long engineSpeed;
+interface BrakeOperation : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean brakePedalDepressed;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -1372,32 +2232,18 @@ interface EngineSpeed : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="engineSpeed" id="::EngineSpeed::engineSpeed">
-      <webidl>         attribute unsigned long engineSpeed;</webidl>
-      <descriptive>
-         <description>
-          <p>
-EngineSpeed
-          </p>
-         </description>
-          <brief>
-  Must return Engine Speed in rotations per minute.
-          </brief>
-      </descriptive>
-      <Type type="unsigned long"/>
+    <Attribute readonly="readonly" name="brakePedalDepressed" id="::BrakeOperation::brakePedalDepressed">
+      <webidl>        readonly attribute boolean brakePedalDepressed;</webidl>
+      <Type type="boolean"/>
     </Attribute>
   </Interface>
-  <Interface name="VehiclePowerMode" id="::VehiclePowerMode">
+  <Interface name="WheelTick" id="::WheelTick">
     <webidl>[NoInterfaceObject]
-interface VehiclePowerMode : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short VEHICLEPOWERMODE_OFF = 0;
-        const unsigned short VEHICLEPOWERMODE_ACCESSORY1 = 1;
-        const unsigned short VEHICLEPOWERMODE_ACCESSORY2 = 2;
-        const unsigned short VEHICLEPOWERMODE_RUN = 3;
-
-         attribute octet vehiclePowerMode;
+interface WheelTick : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned long value;
+                         attribute <ref>Zone</ref>?         zone;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -1405,44 +2251,86 @@ interface VehiclePowerMode : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Const name="VEHICLEPOWERMODE_OFF" value="0" id="::VehiclePowerMode::VEHICLEPOWERMODE_OFF">
-      <webidl>        const unsigned short VEHICLEPOWERMODE_OFF = 0;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="VEHICLEPOWERMODE_ACCESSORY1" value="1" id="::VehiclePowerMode::VEHICLEPOWERMODE_ACCESSORY1">
-      <webidl>        const unsigned short VEHICLEPOWERMODE_ACCESSORY1 = 1;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="VEHICLEPOWERMODE_ACCESSORY2" value="2" id="::VehiclePowerMode::VEHICLEPOWERMODE_ACCESSORY2">
-      <webidl>        const unsigned short VEHICLEPOWERMODE_ACCESSORY2 = 2;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="VEHICLEPOWERMODE_RUN" value="3" id="::VehiclePowerMode::VEHICLEPOWERMODE_RUN">
-      <webidl>        const unsigned short VEHICLEPOWERMODE_RUN = 3;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Attribute name="vehiclePowerMode" id="::VehiclePowerMode::vehiclePowerMode">
-      <webidl>         attribute octet vehiclePowerMode;</webidl>
-      <descriptive>
-         <description>
-          <p>
-VehiclePowerMode
-          </p>
-         </description>
-          <brief>
-  Must return Vehicle Power mode (see VEHICLEPOWERMODE)    
-          </brief>
-      </descriptive>
-      <Type type="octet"/>
+    <Attribute readonly="readonly" name="value" id="::WheelTick::value">
+      <webidl>        readonly attribute unsigned long value;</webidl>
+      <Type type="unsigned long"/>
+    </Attribute>
+    <Attribute name="zone" id="::WheelTick::zone">
+      <webidl>                         attribute <ref>Zone</ref>?         zone;</webidl>
+      <Type name="Zone" nullable="nullable"/>
     </Attribute>
   </Interface>
-  <Interface name="TripMeter" id="::TripMeter">
+  <Enum name="VehicleButton" id="::VehicleButton">
+    <webidl>enum VehicleButton {
+        &quot;home&quot;, &quot;back&quot;, &quot;search&quot;, &quot;call&quot;, &quot;end_call&quot;, &quot;media_play&quot;,
+        &quot;media_next&quot;, &quot;media_previous&quot;, &quot;media_pause&quot;, &quot;voice_recognize&quot;,
+        &quot;enter&quot;, &quot;left&quot;, &quot;right&quot;, &quot;up&quot;, &quot;down&quot;
+};</webidl>
+    <EnumValue stringvalue="home">
+      <webidl>        &quot;home</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="back">
+      <webidl> &quot;back</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="search">
+      <webidl> &quot;search</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="call">
+      <webidl> &quot;call</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="end_call">
+      <webidl> &quot;end_call</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="media_play">
+      <webidl> &quot;media_play</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="media_next">
+      <webidl>        &quot;media_next</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="media_previous">
+      <webidl> &quot;media_previous</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="media_pause">
+      <webidl> &quot;media_pause</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="voice_recognize">
+      <webidl> &quot;voice_recognize</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="enter">
+      <webidl>        &quot;enter</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="left">
+      <webidl> &quot;left</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="right">
+      <webidl> &quot;right</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="up">
+      <webidl> &quot;up</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="down">
+      <webidl> &quot;down</webidl>
+    </EnumValue>
+  </Enum>
+  <Enum name="PressType" id="::PressType">
+    <webidl>enum PressType {&quot;press&quot;, &quot;long_press&quot;, &quot;release&quot;};</webidl>
+    <EnumValue stringvalue="press">
+      <webidl>&quot;press</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="long_press">
+      <webidl> &quot;long_press</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="release">
+      <webidl> &quot;release</webidl>
+    </EnumValue>
+  </Enum>
+  <Interface name="ButtonEvent" id="::ButtonEvent">
     <webidl>[NoInterfaceObject]
-interface TripMeter : <ref>VehiclePropertyType</ref>  { 
-
-         attribute sequence&lt;unsigned long> tripMeters;
+interface ButtonEvent : <ref>VehicleCommonDataType</ref> {
+        readonly attribute <ref>VehicleButton</ref>[] button;
+        readonly attribute <ref>PressType</ref>       state;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -1450,34 +2338,23 @@ interface TripMeter : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="tripMeters" id="::TripMeter::tripMeters">
-      <webidl>         attribute sequence&lt;unsigned long> tripMeters;</webidl>
-      <descriptive>
-         <description>
-          <p>
-TripMeters
-          </p>
-         </description>
-          <brief>
-  Must return trip meters.  Changing any items in the array will reset the item's value to '0'.
-          </brief>
-      </descriptive>
-      <Type type="sequence">
-        <Type type="unsigned long"/>
+    <Attribute readonly="readonly" name="button" id="::ButtonEvent::button">
+      <webidl>        readonly attribute <ref>VehicleButton</ref>[] button;</webidl>
+      <Type type="array">
+        <Type name="VehicleButton"/>
       </Type>
     </Attribute>
+    <Attribute readonly="readonly" name="state" id="::ButtonEvent::state">
+      <webidl>        readonly attribute <ref>PressType</ref>       state;</webidl>
+      <Type name="PressType"/>
+    </Attribute>
   </Interface>
-  <Interface name="Acceleration" id="::Acceleration">
+  <Interface name="DrivingMode" id="::DrivingMode">
     <webidl>[NoInterfaceObject]
-interface Acceleration : <ref>VehiclePropertyType</ref>  { 
-
-         attribute unsigned long x;
-
-         attribute unsigned long y;
-
-         attribute unsigned long z;
+interface DrivingMode : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean mode;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -1485,77 +2362,59 @@ interface Acceleration : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="x" id="::Acceleration::x">
-      <webidl>         attribute unsigned long x;</webidl>
-      <descriptive>
-         <description>
-          <p>
-X
-          </p>
-         </description>
-          <brief>
-  Must return acceleration on the &quot;X&quot; axis as 1/1000 G (gravitational force).    
-          </brief>
-      </descriptive>
-      <Type type="unsigned long"/>
+    <Attribute readonly="readonly" name="mode" id="::DrivingMode::mode">
+      <webidl>        readonly attribute boolean mode;</webidl>
+      <Type type="boolean"/>
     </Attribute>
-    <Attribute name="y" id="::Acceleration::y">
-      <webidl>         attribute unsigned long y;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Y
-          </p>
-         </description>
-          <brief>
-  Must return acceleration on the &quot;Y&quot; axis as 1/1000 G (gravitational force).    
-          </brief>
-      </descriptive>
-      <Type type="unsigned long"/>
+  </Interface>
+  <Interface name="NightMode" id="::NightMode">
+    <webidl>[NoInterfaceObject]
+interface NightMode : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean mode;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="mode" id="::NightMode::mode">
+      <webidl>        readonly attribute boolean mode;</webidl>
+      <Type type="boolean"/>
     </Attribute>
-    <Attribute name="z" id="::Acceleration::z">
-      <webidl>         attribute unsigned long z;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Z
-          </p>
-         </description>
-          <brief>
-  Must return acceleration on the &quot;Z&quot; axis as 1/1000 G (gravitational force).    
-          </brief>
-      </descriptive>
+  </Interface>
+  <Interface name="Odometer" id="::Odometer">
+    <webidl>[NoInterfaceObject]
+interface Odometer : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned long? distanceSinceStart;
+        readonly attribute unsigned long  distanceTotal;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="distanceSinceStart" id="::Odometer::distanceSinceStart">
+      <webidl>        readonly attribute unsigned long? distanceSinceStart;</webidl>
+      <Type type="unsigned long" nullable="nullable"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="distanceTotal" id="::Odometer::distanceTotal">
+      <webidl>        readonly attribute unsigned long  distanceTotal;</webidl>
       <Type type="unsigned long"/>
     </Attribute>
   </Interface>
-  <Interface name="Transmission" id="::Transmission">
+  <Interface name="TransmissionOil" id="::TransmissionOil">
     <webidl>[NoInterfaceObject]
-interface Transmission : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short TRANSMISSIONPOSITION_NEUTRAL = 0;    
-        const unsigned short TRANSMISSIONPOSITION_FIRST = 1;    
-        const unsigned short TRANSMISSIONPOSITION_SECOND = 2;    
-        const unsigned short TRANSMISSIONPOSITION_THIRD = 3;    
-        const unsigned short TRANSMISSIONPOSITION_FORTH = 4;    
-        const unsigned short TRANSMISSIONPOSITION_FIFTH = 5;    
-        const unsigned short TRANSMISSIONPOSITION_SIXTH = 6;    
-        const unsigned short TRANSMISSIONPOSITION_SEVENTH = 7;    
-        const unsigned short TRANSMISSIONPOSITION_EIGHTH = 8;    
-        const unsigned short TRANSMISSIONPOSITION_NINTH = 9;    
-        const unsigned short TRANSMISSIONPOSITION_TENTH = 10;    
-        const unsigned short TRANSMISSIONPOSITION_CVT = 64;    
-        const unsigned short TRANSMISSIONPOSITION_REVERSE = 128;    
-        const unsigned short TRANSMISSIONPOSITION_PARK = 255;    
-        const unsigned short TRANSMISSIONMODE_NORMAL = 0;    
-        const unsigned short TRANSMISSIONMODE_SPORT = 1;    
-        const unsigned short TRANSMISSIONMODE_ECONOMY = 2;    
-        const unsigned short TRANSMISSIONMODE_OEMCUSTOM1 = 3;    
-        const unsigned short TRANSMISSIONMODE_OEMCUSTOM2 = 4;    
-
-         attribute octet gearPosition;
-
-         attribute octet mode;
+interface TransmissionOil : <ref>VehicleCommonDataType</ref> {
+        readonly attribute byte?  wear;
+        readonly attribute short? temperature;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -1563,120 +2422,154 @@ interface Transmission : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Const name="TRANSMISSIONPOSITION_NEUTRAL" value="0" id="::Transmission::TRANSMISSIONPOSITION_NEUTRAL">
-      <webidl>        const unsigned short TRANSMISSIONPOSITION_NEUTRAL = 0;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="TRANSMISSIONPOSITION_FIRST" value="1" id="::Transmission::TRANSMISSIONPOSITION_FIRST">
-      <webidl>        const unsigned short TRANSMISSIONPOSITION_FIRST = 1;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="TRANSMISSIONPOSITION_SECOND" value="2" id="::Transmission::TRANSMISSIONPOSITION_SECOND">
-      <webidl>        const unsigned short TRANSMISSIONPOSITION_SECOND = 2;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="TRANSMISSIONPOSITION_THIRD" value="3" id="::Transmission::TRANSMISSIONPOSITION_THIRD">
-      <webidl>        const unsigned short TRANSMISSIONPOSITION_THIRD = 3;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="TRANSMISSIONPOSITION_FORTH" value="4" id="::Transmission::TRANSMISSIONPOSITION_FORTH">
-      <webidl>        const unsigned short TRANSMISSIONPOSITION_FORTH = 4;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="TRANSMISSIONPOSITION_FIFTH" value="5" id="::Transmission::TRANSMISSIONPOSITION_FIFTH">
-      <webidl>        const unsigned short TRANSMISSIONPOSITION_FIFTH = 5;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="TRANSMISSIONPOSITION_SIXTH" value="6" id="::Transmission::TRANSMISSIONPOSITION_SIXTH">
-      <webidl>        const unsigned short TRANSMISSIONPOSITION_SIXTH = 6;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="TRANSMISSIONPOSITION_SEVENTH" value="7" id="::Transmission::TRANSMISSIONPOSITION_SEVENTH">
-      <webidl>        const unsigned short TRANSMISSIONPOSITION_SEVENTH = 7;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="TRANSMISSIONPOSITION_EIGHTH" value="8" id="::Transmission::TRANSMISSIONPOSITION_EIGHTH">
-      <webidl>        const unsigned short TRANSMISSIONPOSITION_EIGHTH = 8;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="TRANSMISSIONPOSITION_NINTH" value="9" id="::Transmission::TRANSMISSIONPOSITION_NINTH">
-      <webidl>        const unsigned short TRANSMISSIONPOSITION_NINTH = 9;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="TRANSMISSIONPOSITION_TENTH" value="10" id="::Transmission::TRANSMISSIONPOSITION_TENTH">
-      <webidl>        const unsigned short TRANSMISSIONPOSITION_TENTH = 10;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="TRANSMISSIONPOSITION_CVT" value="64" id="::Transmission::TRANSMISSIONPOSITION_CVT">
-      <webidl>        const unsigned short TRANSMISSIONPOSITION_CVT = 64;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="TRANSMISSIONPOSITION_REVERSE" value="128" id="::Transmission::TRANSMISSIONPOSITION_REVERSE">
-      <webidl>        const unsigned short TRANSMISSIONPOSITION_REVERSE = 128;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="TRANSMISSIONPOSITION_PARK" value="255" id="::Transmission::TRANSMISSIONPOSITION_PARK">
-      <webidl>        const unsigned short TRANSMISSIONPOSITION_PARK = 255;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="TRANSMISSIONMODE_NORMAL" value="0" id="::Transmission::TRANSMISSIONMODE_NORMAL">
-      <webidl>        const unsigned short TRANSMISSIONMODE_NORMAL = 0;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="TRANSMISSIONMODE_SPORT" value="1" id="::Transmission::TRANSMISSIONMODE_SPORT">
-      <webidl>        const unsigned short TRANSMISSIONMODE_SPORT = 1;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="TRANSMISSIONMODE_ECONOMY" value="2" id="::Transmission::TRANSMISSIONMODE_ECONOMY">
-      <webidl>        const unsigned short TRANSMISSIONMODE_ECONOMY = 2;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="TRANSMISSIONMODE_OEMCUSTOM1" value="3" id="::Transmission::TRANSMISSIONMODE_OEMCUSTOM1">
-      <webidl>        const unsigned short TRANSMISSIONMODE_OEMCUSTOM1 = 3;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="TRANSMISSIONMODE_OEMCUSTOM2" value="4" id="::Transmission::TRANSMISSIONMODE_OEMCUSTOM2">
-      <webidl>        const unsigned short TRANSMISSIONMODE_OEMCUSTOM2 = 4;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Attribute name="gearPosition" id="::Transmission::gearPosition">
-      <webidl>         attribute octet gearPosition;</webidl>
-      <descriptive>
-         <description>
-          <p>
-GearPosition
-          </p>
-         </description>
-          <brief>
-  Must return transmission gear position (see TRANSMISSIONPOSITION)    
-          </brief>
-      </descriptive>
-      <Type type="octet"/>
+    <Attribute readonly="readonly" name="wear" id="::TransmissionOil::wear">
+      <webidl>        readonly attribute byte?  wear;</webidl>
+      <Type type="byte" nullable="nullable"/>
     </Attribute>
-    <Attribute name="mode" id="::Transmission::mode">
-      <webidl>         attribute octet mode;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Mode
-          </p>
-         </description>
-          <brief>
-  Must return transmission Mode (see 
-          </brief>
-      </descriptive>
-      <Type type="octet"/>
+    <Attribute readonly="readonly" name="temperature" id="::TransmissionOil::temperature">
+      <webidl>        readonly attribute short? temperature;</webidl>
+      <Type type="short" nullable="nullable"/>
+    </Attribute>
+  </Interface>
+  <Interface name="TransmissionClutch" id="::TransmissionClutch">
+    <webidl>[NoInterfaceObject]
+interface TransmissionClutch : <ref>VehicleCommonDataType</ref> {
+        readonly attribute byte wear;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="wear" id="::TransmissionClutch::wear">
+      <webidl>        readonly attribute byte wear;</webidl>
+      <Type type="byte"/>
+    </Attribute>
+  </Interface>
+  <Interface name="BrakeMaintenance" id="::BrakeMaintenance">
+    <webidl>[NoInterfaceObject]
+interface BrakeMaintenance : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short? fluidLevel;
+        readonly attribute boolean?        fluidLevelLow;
+        readonly attribute byte?           padWear;
+        readonly attribute boolean?        brakesWorn;
+                         attribute <ref>Zone</ref>?           zone;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="fluidLevel" id="::BrakeMaintenance::fluidLevel">
+      <webidl>        readonly attribute unsigned short? fluidLevel;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="fluidLevelLow" id="::BrakeMaintenance::fluidLevelLow">
+      <webidl>        readonly attribute boolean?        fluidLevelLow;</webidl>
+      <Type type="boolean" nullable="nullable"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="padWear" id="::BrakeMaintenance::padWear">
+      <webidl>        readonly attribute byte?           padWear;</webidl>
+      <Type type="byte" nullable="nullable"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="brakesWorn" id="::BrakeMaintenance::brakesWorn">
+      <webidl>        readonly attribute boolean?        brakesWorn;</webidl>
+      <Type type="boolean" nullable="nullable"/>
+    </Attribute>
+    <Attribute name="zone" id="::BrakeMaintenance::zone">
+      <webidl>                         attribute <ref>Zone</ref>?           zone;</webidl>
+      <Type name="Zone" nullable="nullable"/>
+    </Attribute>
+  </Interface>
+  <Interface name="WasherFluid" id="::WasherFluid">
+    <webidl>[NoInterfaceObject]
+interface WasherFluid : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short? level;
+        readonly attribute boolean?        levelLow;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="level" id="::WasherFluid::level">
+      <webidl>        readonly attribute unsigned short? level;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="levelLow" id="::WasherFluid::levelLow">
+      <webidl>        readonly attribute boolean?        levelLow;</webidl>
+      <Type type="boolean" nullable="nullable"/>
+    </Attribute>
+  </Interface>
+  <Interface name="MalfunctionIndicator" id="::MalfunctionIndicator">
+    <webidl>[NoInterfaceObject]
+interface MalfunctionIndicator : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean on;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="on" id="::MalfunctionIndicator::on">
+      <webidl>        readonly attribute boolean on;</webidl>
+      <Type type="boolean"/>
+    </Attribute>
+  </Interface>
+  <Interface name="BatteryStatus" id="::BatteryStatus">
+    <webidl>[NoInterfaceObject]
+interface BatteryStatus : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short? chargeLevel;
+        readonly attribute unsigned short? voltage;
+        readonly attribute unsigned short? current;
+                         attribute <ref>Zone</ref>?           zone;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="chargeLevel" id="::BatteryStatus::chargeLevel">
+      <webidl>        readonly attribute unsigned short? chargeLevel;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="voltage" id="::BatteryStatus::voltage">
+      <webidl>        readonly attribute unsigned short? voltage;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="current" id="::BatteryStatus::current">
+      <webidl>        readonly attribute unsigned short? current;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
+    </Attribute>
+    <Attribute name="zone" id="::BatteryStatus::zone">
+      <webidl>                         attribute <ref>Zone</ref>?           zone;</webidl>
+      <Type name="Zone" nullable="nullable"/>
     </Attribute>
   </Interface>
-  <Interface name="CruiseControlStatus" id="::CruiseControlStatus">
+  <Interface name="Tire" id="::Tire">
     <webidl>[NoInterfaceObject]
-interface CruiseControlStatus : <ref>VehiclePropertyType</ref>  { 
-
-         attribute boolean activated;
-
-         attribute unsigned short speed;
+interface Tire : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean?        pressureLow;
+        readonly attribute unsigned short? pressure;
+        readonly attribute short?          temperature;
+                         attribute <ref>Zone</ref>?           zone;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -1684,42 +2577,33 @@ interface CruiseControlStatus : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="activated" id="::CruiseControlStatus::activated">
-      <webidl>         attribute boolean activated;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Activated
-          </p>
-         </description>
-          <brief>
-  Must return whether or not the Cruise Control system is active (true) or inactive (false)    
-          </brief>
-      </descriptive>
-      <Type type="boolean"/>
+    <Attribute readonly="readonly" name="pressureLow" id="::Tire::pressureLow">
+      <webidl>        readonly attribute boolean?        pressureLow;</webidl>
+      <Type type="boolean" nullable="nullable"/>
     </Attribute>
-    <Attribute name="speed" id="::CruiseControlStatus::speed">
-      <webidl>         attribute unsigned short speed;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Speed
-          </p>
-         </description>
-          <brief>
-  Must return target Cruise Control speed in kilometers per hour (kph).    
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
+    <Attribute readonly="readonly" name="pressure" id="::Tire::pressure">
+      <webidl>        readonly attribute unsigned short? pressure;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="temperature" id="::Tire::temperature">
+      <webidl>        readonly attribute short?          temperature;</webidl>
+      <Type type="short" nullable="nullable"/>
+    </Attribute>
+    <Attribute name="zone" id="::Tire::zone">
+      <webidl>                         attribute <ref>Zone</ref>?           zone;</webidl>
+      <Type name="Zone" nullable="nullable"/>
     </Attribute>
   </Interface>
-  <Interface name="WheelBrake" id="::WheelBrake">
+  <Interface name="Diagnostic" id="::Diagnostic">
     <webidl>[NoInterfaceObject]
-interface WheelBrake : <ref>VehiclePropertyType</ref>  { 
-
-         attribute boolean engaged;
+interface Diagnostic : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned long accumulatedEngineRuntime;
+        readonly attribute unsigned long distanceWithMILOn;
+        readonly attribute unsigned long distanceSinceCodeCleared;
+        readonly attribute unsigned long timeRunMILOn;
+        readonly attribute unsigned long timeTroubleCodeClear;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -1727,42 +2611,33 @@ interface WheelBrake : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="engaged" id="::WheelBrake::engaged">
-      <webidl>         attribute boolean engaged;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Engaged
-          </p>
-         </description>
-          <brief>
-  Must return Wheel Brake status: Engaged = true, disengaged = false    
-          </brief>
-      </descriptive>
-      <Type type="boolean"/>
+    <Attribute readonly="readonly" name="accumulatedEngineRuntime" id="::Diagnostic::accumulatedEngineRuntime">
+      <webidl>        readonly attribute unsigned long accumulatedEngineRuntime;</webidl>
+      <Type type="unsigned long"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="distanceWithMILOn" id="::Diagnostic::distanceWithMILOn">
+      <webidl>        readonly attribute unsigned long distanceWithMILOn;</webidl>
+      <Type type="unsigned long"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="distanceSinceCodeCleared" id="::Diagnostic::distanceSinceCodeCleared">
+      <webidl>        readonly attribute unsigned long distanceSinceCodeCleared;</webidl>
+      <Type type="unsigned long"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="timeRunMILOn" id="::Diagnostic::timeRunMILOn">
+      <webidl>        readonly attribute unsigned long timeRunMILOn;</webidl>
+      <Type type="unsigned long"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="timeTroubleCodeClear" id="::Diagnostic::timeTroubleCodeClear">
+      <webidl>        readonly attribute unsigned long timeTroubleCodeClear;</webidl>
+      <Type type="unsigned long"/>
     </Attribute>
   </Interface>
-  <Interface name="LightStatus" id="::LightStatus">
+  <Interface name="LanguageConfiguration" id="::LanguageConfiguration">
     <webidl>[NoInterfaceObject]
-interface LightStatus : <ref>VehiclePropertyType</ref>  { 
-
-         attribute boolean head;
-
-         attribute boolean rightTurn;
-
-         attribute boolean leftTurn;
-
-         attribute boolean brake;
-
-         attribute boolean fog;
-
-         attribute boolean hazard;
-
-         attribute boolean parking;
-
-         attribute boolean highBeam;
+interface LanguageConfiguration : <ref>VehicleCommonDataType</ref> {
+        attribute DOMString? language;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -1770,130 +2645,57 @@ interface LightStatus : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="head" id="::LightStatus::head">
-      <webidl>         attribute boolean head;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Head
-          </p>
-         </description>
-          <brief>
-  Must return headlight status: on = true, off = false.    
-          </brief>
-      </descriptive>
-      <Type type="boolean"/>
-    </Attribute>
-    <Attribute name="rightTurn" id="::LightStatus::rightTurn">
-      <webidl>         attribute boolean rightTurn;</webidl>
-      <descriptive>
-         <description>
-          <p>
-RightTurn
-          </p>
-         </description>
-          <brief>
-  Must return right turn signal status: on = true, off = false.    
-          </brief>
-      </descriptive>
-      <Type type="boolean"/>
-    </Attribute>
-    <Attribute name="leftTurn" id="::LightStatus::leftTurn">
-      <webidl>         attribute boolean leftTurn;</webidl>
-      <descriptive>
-         <description>
-          <p>
-LeftTurn
-          </p>
-         </description>
-          <brief>
-  Must return left turn signal status: on = true, off = false.    
-          </brief>
-      </descriptive>
-      <Type type="boolean"/>
+    <Attribute name="language" id="::LanguageConfiguration::language">
+      <webidl>        attribute DOMString? language;</webidl>
+      <Type type="DOMString" nullable="nullable"/>
     </Attribute>
-    <Attribute name="brake" id="::LightStatus::brake">
-      <webidl>         attribute boolean brake;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Brake
-          </p>
-         </description>
-          <brief>
-  Must return  brake signal light status: on = true, off = false.    
-          </brief>
-      </descriptive>
-      <Type type="boolean"/>
+  </Interface>
+  <Interface name="UnitsOfMeasure" id="::UnitsOfMeasure">
+    <webidl>[NoInterfaceObject]
+interface UnitsOfMeasure : <ref>VehicleCommonDataType</ref> {
+        attribute boolean?   isMKSSystem;
+        attribute DOMString? unitsFuelVolume;
+        attribute DOMString? unitsDistance;
+        attribute DOMString? unitsSpeed;
+        attribute DOMString? unitsFuelConsumption;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute name="isMKSSystem" id="::UnitsOfMeasure::isMKSSystem">
+      <webidl>        attribute boolean?   isMKSSystem;</webidl>
+      <Type type="boolean" nullable="nullable"/>
     </Attribute>
-    <Attribute name="fog" id="::LightStatus::fog">
-      <webidl>         attribute boolean fog;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Fog
-          </p>
-         </description>
-          <brief>
-  Must return fog light status: on = true, off = false.    
-          </brief>
-      </descriptive>
-      <Type type="boolean"/>
+    <Attribute name="unitsFuelVolume" id="::UnitsOfMeasure::unitsFuelVolume">
+      <webidl>        attribute DOMString? unitsFuelVolume;</webidl>
+      <Type type="DOMString" nullable="nullable"/>
     </Attribute>
-    <Attribute name="hazard" id="::LightStatus::hazard">
-      <webidl>         attribute boolean hazard;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Hazard
-          </p>
-         </description>
-          <brief>
-  Must return hazard light status: on = true, off = false.    
-          </brief>
-      </descriptive>
-      <Type type="boolean"/>
+    <Attribute name="unitsDistance" id="::UnitsOfMeasure::unitsDistance">
+      <webidl>        attribute DOMString? unitsDistance;</webidl>
+      <Type type="DOMString" nullable="nullable"/>
     </Attribute>
-    <Attribute name="parking" id="::LightStatus::parking">
-      <webidl>         attribute boolean parking;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Parking
-          </p>
-         </description>
-          <brief>
-  Must return parking light status: on = true, off = false.    
-          </brief>
-      </descriptive>
-      <Type type="boolean"/>
+    <Attribute name="unitsSpeed" id="::UnitsOfMeasure::unitsSpeed">
+      <webidl>        attribute DOMString? unitsSpeed;</webidl>
+      <Type type="DOMString" nullable="nullable"/>
     </Attribute>
-    <Attribute name="highBeam" id="::LightStatus::highBeam">
-      <webidl>         attribute boolean highBeam;</webidl>
-      <descriptive>
-         <description>
-          <p>
-HighBeam
-          </p>
-         </description>
-          <brief>
-  Must return high beam status: on = true, off = false.    
-          </brief>
-      </descriptive>
-      <Type type="boolean"/>
+    <Attribute name="unitsFuelConsumption" id="::UnitsOfMeasure::unitsFuelConsumption">
+      <webidl>        attribute DOMString? unitsFuelConsumption;</webidl>
+      <Type type="DOMString" nullable="nullable"/>
     </Attribute>
   </Interface>
-  <Interface name="InteriorLightStatus" id="::InteriorLightStatus">
+  <Interface name="Mirror" id="::Mirror">
     <webidl>[NoInterfaceObject]
-interface InteriorLightStatus : <ref>VehiclePropertyType</ref>  { 
-
-         attribute boolean passenger;
-
-         attribute boolean driver;
-
-         attribute boolean center;
+interface Mirror : <ref>VehicleCommonDataType</ref> {
+        attribute unsigned short? mirrorTilt;
+        attribute unsigned short? mirrorPan;
+        attribute <ref>Zone</ref>?           zone;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -1901,56 +2703,31 @@ interface InteriorLightStatus : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="passenger" id="::InteriorLightStatus::passenger">
-      <webidl>         attribute boolean passenger;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Passenger
-          </p>
-         </description>
-          <brief>
-  Must return passenger interior light status: on = true, off = false    
-          </brief>
-      </descriptive>
-      <Type type="boolean"/>
+    <Attribute name="mirrorTilt" id="::Mirror::mirrorTilt">
+      <webidl>        attribute unsigned short? mirrorTilt;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
     </Attribute>
-    <Attribute name="driver" id="::InteriorLightStatus::driver">
-      <webidl>         attribute boolean driver;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Driver
-          </p>
-         </description>
-          <brief>
-  Must return driver interior light status: on = true, off = false    
-          </brief>
-      </descriptive>
-      <Type type="boolean"/>
+    <Attribute name="mirrorPan" id="::Mirror::mirrorPan">
+      <webidl>        attribute unsigned short? mirrorPan;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
     </Attribute>
-    <Attribute name="center" id="::InteriorLightStatus::center">
-      <webidl>         attribute boolean center;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Center
-          </p>
-         </description>
-          <brief>
-  Must return center interior light status: on = true, off = false    
-          </brief>
-      </descriptive>
-      <Type type="boolean"/>
+    <Attribute name="zone" id="::Mirror::zone">
+      <webidl>        attribute <ref>Zone</ref>?           zone;</webidl>
+      <Type name="Zone" nullable="nullable"/>
     </Attribute>
   </Interface>
-  <Interface name="Horn" id="::Horn">
+  <Interface name="SeatAdjustment" id="::SeatAdjustment">
     <webidl>[NoInterfaceObject]
-interface Horn : <ref>VehiclePropertyType</ref>  { 
-
-         attribute boolean on;
+interface SeatAdjustment : <ref>VehicleCommonDataType</ref> {
+        attribute unsigned short? reclineSeatBack;
+        attribute unsigned short? seatSlide;
+        attribute unsigned short? seatCushionHeight;
+        attribute unsigned short? seatHeadrest;
+        attribute unsigned short? seatBackCushion;
+        attribute unsigned short? seatSideCushion;
+        attribute <ref>Zone</ref>?           zone;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -1958,36 +2735,62 @@ interface Horn : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="on" id="::Horn::on">
-      <webidl>         attribute boolean on;</webidl>
-      <descriptive>
-         <description>
-          <p>
-On
-          </p>
-         </description>
-          <brief>
-  Must return horn status: on = true, off = false    
-          </brief>
-      </descriptive>
-      <Type type="boolean"/>
+    <Attribute name="reclineSeatBack" id="::SeatAdjustment::reclineSeatBack">
+      <webidl>        attribute unsigned short? reclineSeatBack;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
+    </Attribute>
+    <Attribute name="seatSlide" id="::SeatAdjustment::seatSlide">
+      <webidl>        attribute unsigned short? seatSlide;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
+    </Attribute>
+    <Attribute name="seatCushionHeight" id="::SeatAdjustment::seatCushionHeight">
+      <webidl>        attribute unsigned short? seatCushionHeight;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
+    </Attribute>
+    <Attribute name="seatHeadrest" id="::SeatAdjustment::seatHeadrest">
+      <webidl>        attribute unsigned short? seatHeadrest;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
+    </Attribute>
+    <Attribute name="seatBackCushion" id="::SeatAdjustment::seatBackCushion">
+      <webidl>        attribute unsigned short? seatBackCushion;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
+    </Attribute>
+    <Attribute name="seatSideCushion" id="::SeatAdjustment::seatSideCushion">
+      <webidl>        attribute unsigned short? seatSideCushion;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
+    </Attribute>
+    <Attribute name="zone" id="::SeatAdjustment::zone">
+      <webidl>        attribute <ref>Zone</ref>?           zone;</webidl>
+      <Type name="Zone" nullable="nullable"/>
     </Attribute>
   </Interface>
-  <Interface name="Fuel" id="::Fuel">
+  <Enum name="DriveModeEnum" id="::DriveModeEnum">
+    <webidl>enum DriveModeEnum {&quot;comfort&quot;, &quot;auto&quot;, &quot;sport&quot;, &quot;eco&quot;, &quot;manual&quot;, &quot;winter&quot;};</webidl>
+    <EnumValue stringvalue="comfort">
+      <webidl>&quot;comfort</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="auto">
+      <webidl> &quot;auto</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="sport">
+      <webidl> &quot;sport</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="eco">
+      <webidl> &quot;eco</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="manual">
+      <webidl> &quot;manual</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="winter">
+      <webidl> &quot;winter</webidl>
+    </EnumValue>
+  </Enum>
+  <Interface name="DriveMode" id="::DriveMode">
     <webidl>[NoInterfaceObject]
-interface Fuel : <ref>VehiclePropertyType</ref>  { 
-
-         attribute unsigned short level;
-
-         attribute unsigned short range;
-
-         attribute unsigned short instantConsumption;
-
-         attribute unsigned short instantEconomy;
-
-         attribute unsigned short averageEconomy;
+interface DriveMode : <ref>VehicleCommonDataType</ref> {
+        attribute <ref>DriveModeEnum</ref>? driveMode;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -1995,88 +2798,17 @@ interface Fuel : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="level" id="::Fuel::level">
-      <webidl>         attribute unsigned short level;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Level
-          </p>
-         </description>
-          <brief>
-  Must return fuel level as a percentage of fullness.    
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
-    </Attribute>
-    <Attribute name="range" id="::Fuel::range">
-      <webidl>         attribute unsigned short range;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Range
-          </p>
-         </description>
-          <brief>
-  Must return estimated fuel range in kilometers.    
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
-    </Attribute>
-    <Attribute name="instantConsumption" id="::Fuel::instantConsumption">
-      <webidl>         attribute unsigned short instantConsumption;</webidl>
-      <descriptive>
-         <description>
-          <p>
-InstantConsumption
-          </p>
-         </description>
-          <brief>
-  Must return instant fuel consumption in milliliters of fuel per second.    
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
-    </Attribute>
-    <Attribute name="instantEconomy" id="::Fuel::instantEconomy">
-      <webidl>         attribute unsigned short instantEconomy;</webidl>
-      <descriptive>
-         <description>
-          <p>
-InstantEconomy
-          </p>
-         </description>
-          <brief>
-  Must return instant fuel 'economy' in kilometers per liter of fuel.    
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
-    </Attribute>
-    <Attribute name="averageEconomy" id="::Fuel::averageEconomy">
-      <webidl>         attribute unsigned short averageEconomy;</webidl>
-      <descriptive>
-         <description>
-          <p>
-AverageEconomy
-          </p>
-         </description>
-          <brief>
-  Must return average fuel 'economy' in kilometers per liter of fuel since last reset.  Setting this to any value should reset the counter to '0'    
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
+    <Attribute name="driveMode" id="::DriveMode::driveMode">
+      <webidl>        attribute <ref>DriveModeEnum</ref>? driveMode;</webidl>
+      <Type name="DriveModeEnum" nullable="nullable"/>
     </Attribute>
   </Interface>
-  <Interface name="EngineOil" id="::EngineOil">
+  <Interface name="DashboardIllumination" id="::DashboardIllumination">
     <webidl>[NoInterfaceObject]
-interface EngineOil : <ref>VehiclePropertyType</ref>  { 
-
-         attribute unsigned short remaining;
-
-         attribute long temperature;
-
-         attribute unsigned short pressure;
+interface DashboardIllumination : <ref>VehicleCommonDataType</ref> {
+        attribute DOMString? dashboardIllumination;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -2084,62 +2816,18 @@ interface EngineOil : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="remaining" id="::EngineOil::remaining">
-      <webidl>         attribute unsigned short remaining;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Remaining
-          </p>
-         </description>
-          <brief>
-  Must return remaining engine oil as percentage of fullness.    
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
-    </Attribute>
-    <Attribute name="temperature" id="::EngineOil::temperature">
-      <webidl>         attribute long temperature;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Temperature
-          </p>
-         </description>
-          <brief>
-  Must return Engine Oil Temperature in Celcius.    
-          </brief>
-      </descriptive>
-      <Type type="long"/>
-    </Attribute>
-    <Attribute name="pressure" id="::EngineOil::pressure">
-      <webidl>         attribute unsigned short pressure;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Pressure
-          </p>
-         </description>
-          <brief>
-  Must return Engine Oil Pressure in kPa.    
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
+    <Attribute name="dashboardIllumination" id="::DashboardIllumination::dashboardIllumination">
+      <webidl>        attribute DOMString? dashboardIllumination;</webidl>
+      <Type type="DOMString" nullable="nullable"/>
     </Attribute>
   </Interface>
-  <Interface name="Location" id="::Location">
+  <Interface name="VehicleSound" id="::VehicleSound">
     <webidl>[NoInterfaceObject]
-interface Location : <ref>VehiclePropertyType</ref>  { 
-
-         attribute double latitude;
-
-         attribute double longitude;
-
-         attribute double altitude;
-
-         attribute unsigned short direction;
+interface VehicleSound : <ref>VehicleCommonDataType</ref> {
+        attribute boolean    activeNoiseControlMode;
+        attribute DOMString? engineSoundEnhancementMode;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -2147,70 +2835,22 @@ interface Location : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="latitude" id="::Location::latitude">
-      <webidl>         attribute double latitude;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Latitude
-          </p>
-         </description>
-          <brief>
-  Must return latitude in Deg.Min (-180, +180)    
-          </brief>
-      </descriptive>
-      <Type type="double"/>
-    </Attribute>
-    <Attribute name="longitude" id="::Location::longitude">
-      <webidl>         attribute double longitude;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Longitude
-          </p>
-         </description>
-          <brief>
-  Must return longitude in Deg.Min (-90, +90)    
-          </brief>
-      </descriptive>
-      <Type type="double"/>
-    </Attribute>
-    <Attribute name="altitude" id="::Location::altitude">
-      <webidl>         attribute double altitude;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Altitude
-          </p>
-         </description>
-          <brief>
-  Must return altitude in meters above sea-level (0).    
-          </brief>
-      </descriptive>
-      <Type type="double"/>
+    <Attribute name="activeNoiseControlMode" id="::VehicleSound::activeNoiseControlMode">
+      <webidl>        attribute boolean    activeNoiseControlMode;</webidl>
+      <Type type="boolean"/>
     </Attribute>
-    <Attribute name="direction" id="::Location::direction">
-      <webidl>         attribute unsigned short direction;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Direction
-          </p>
-         </description>
-          <brief>
-  Must return direction in Degrees  (0-360)    
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
+    <Attribute name="engineSoundEnhancementMode" id="::VehicleSound::engineSoundEnhancementMode">
+      <webidl>        attribute DOMString? engineSoundEnhancementMode;</webidl>
+      <Type type="DOMString" nullable="nullable"/>
     </Attribute>
   </Interface>
-  <Interface name="ExteriorBrightness" id="::ExteriorBrightness">
+  <Interface name="AntilockBrakingSystem" id="::AntilockBrakingSystem">
     <webidl>[NoInterfaceObject]
-interface ExteriorBrightness : <ref>VehiclePropertyType</ref>  { 
-
-         attribute unsigned long exteriorBrightness;
+interface AntilockBrakingSystem : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean enabled;
+        readonly attribute boolean engaged;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -2218,30 +2858,22 @@ interface ExteriorBrightness : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="exteriorBrightness" id="::ExteriorBrightness::exteriorBrightness">
-      <webidl>         attribute unsigned long exteriorBrightness;</webidl>
-      <descriptive>
-         <description>
-          <p>
-ExteriorBrightness
-          </p>
-         </description>
-          <brief>
- Must return the brightness outside the vehicle in lux.    
-          </brief>
-      </descriptive>
-      <Type type="unsigned long"/>
+    <Attribute readonly="readonly" name="enabled" id="::AntilockBrakingSystem::enabled">
+      <webidl>        readonly attribute boolean enabled;</webidl>
+      <Type type="boolean"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="engaged" id="::AntilockBrakingSystem::engaged">
+      <webidl>        readonly attribute boolean engaged;</webidl>
+      <Type type="boolean"/>
     </Attribute>
   </Interface>
-  <Interface name="Temperature" id="::Temperature">
+  <Interface name="TractionControlSystem" id="::TractionControlSystem">
     <webidl>[NoInterfaceObject]
-interface Temperature : <ref>VehiclePropertyType</ref>  { 
-
-         attribute short interior;
-
-         attribute short exterior;
+interface TractionControlSystem : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean enabled;
+        readonly attribute boolean engaged;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -2249,42 +2881,22 @@ interface Temperature : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="interior" id="::Temperature::interior">
-      <webidl>         attribute short interior;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Interior
-          </p>
-         </description>
-          <brief>
- Must return the temperature of the interior of the vehicle in celcius.    
-          </brief>
-      </descriptive>
-      <Type type="short"/>
+    <Attribute readonly="readonly" name="enabled" id="::TractionControlSystem::enabled">
+      <webidl>        readonly attribute boolean enabled;</webidl>
+      <Type type="boolean"/>
     </Attribute>
-    <Attribute name="exterior" id="::Temperature::exterior">
-      <webidl>         attribute short exterior;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Exterior
-          </p>
-         </description>
-          <brief>
- Must return the temperature of the exterior of the vehicle in celcius.    
-          </brief>
-      </descriptive>
-      <Type type="short"/>
+    <Attribute readonly="readonly" name="engaged" id="::TractionControlSystem::engaged">
+      <webidl>        readonly attribute boolean engaged;</webidl>
+      <Type type="boolean"/>
     </Attribute>
   </Interface>
-  <Interface name="RainSensor" id="::RainSensor">
+  <Interface name="ElectronicStabilityControl" id="::ElectronicStabilityControl">
     <webidl>[NoInterfaceObject]
-interface RainSensor : <ref>VehiclePropertyType</ref>  { 
-
-         attribute unsigned short rainSensor;
+interface ElectronicStabilityControl : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean enabled;
+        readonly attribute boolean engaged;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -2292,32 +2904,21 @@ interface RainSensor : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="rainSensor" id="::RainSensor::rainSensor">
-      <webidl>         attribute unsigned short rainSensor;</webidl>
-      <descriptive>
-         <description>
-          <p>
-RainSensor
-          </p>
-         </description>
-          <brief>
- Must return level of rain intensity 0: No Rain - 10: Heaviest Rain.    
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
+    <Attribute readonly="readonly" name="enabled" id="::ElectronicStabilityControl::enabled">
+      <webidl>        readonly attribute boolean enabled;</webidl>
+      <Type type="boolean"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="engaged" id="::ElectronicStabilityControl::engaged">
+      <webidl>        readonly attribute boolean engaged;</webidl>
+      <Type type="boolean"/>
     </Attribute>
   </Interface>
-  <Interface name="WindshieldWiper" id="::WindshieldWiper">
+  <Interface name="TopSpeedLimit" id="::TopSpeedLimit">
     <webidl>[NoInterfaceObject]
-interface WindshieldWiper : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short WIPERSPEED_OFF = 0;    
-        const unsigned short WIPERSPEED_SLOWEST= 1;    
-        const unsigned short WIPERSPEED_FASTEST = 5;    
-        const unsigned short WIPERSPEED_AUTO = 10;    
-
-         attribute unsigned short windshieldWiper;
+interface TopSpeedLimit : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short speed;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -2325,80 +2926,19 @@ interface WindshieldWiper : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Const name="WIPERSPEED_OFF" value="0" id="::WindshieldWiper::WIPERSPEED_OFF">
-      <webidl>        const unsigned short WIPERSPEED_OFF = 0;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="WIPERSPEED_SLOWEST" value="1" id="::WindshieldWiper::WIPERSPEED_SLOWEST">
-      <webidl>        const unsigned short WIPERSPEED_SLOWEST= 1;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="WIPERSPEED_FASTEST" value="5" id="::WindshieldWiper::WIPERSPEED_FASTEST">
-      <webidl>        const unsigned short WIPERSPEED_FASTEST = 5;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="WIPERSPEED_AUTO" value="10" id="::WindshieldWiper::WIPERSPEED_AUTO">
-      <webidl>        const unsigned short WIPERSPEED_AUTO = 10;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Attribute name="windshieldWiper" id="::WindshieldWiper::windshieldWiper">
-      <webidl>         attribute unsigned short windshieldWiper;</webidl>
-      <descriptive>
-         <description>
-          <p>
-WindshieldWiper
-          </p>
-         </description>
-          <brief>
- Must return Level of windshield whiper speed (see WIPERSPEED)    
-          </brief>
-      </descriptive>
+    <Attribute readonly="readonly" name="speed" id="::TopSpeedLimit::speed">
+      <webidl>        readonly attribute unsigned short speed;</webidl>
       <Type type="unsigned short"/>
     </Attribute>
   </Interface>
-  <Dictionary name="DefrostDictionary" id="::DefrostDictionary">
-    <webidl>dictionary DefrostDictionary {
-        unsigned short window;
-        boolean defrost;
-};</webidl>
-    <DictionaryMember name="window" id="::DefrostDictionary::window">
-      <webidl>        unsigned short window;</webidl>
-      <Type type="unsigned short"/>
-    </DictionaryMember>
-    <DictionaryMember name="defrost" id="::DefrostDictionary::defrost">
-      <webidl>        boolean defrost;</webidl>
-      <Type type="boolean"/>
-    </DictionaryMember>
-  </Dictionary>
-  <Interface name="HVAC" id="::HVAC">
+  <Interface name="AirbagStatus" id="::AirbagStatus">
     <webidl>[NoInterfaceObject]
-interface HVAC : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short AIRFLOWDIRECTION_FRONTPANEL = 0;
-        const unsigned short AIRFLOWDIRECTION_FLOORDUCT= 1;
-        const unsigned short AIRFLOWDIRECTION_FRONT = 0x02;
-        const unsigned short AIRFLOWDIRECTION_DEFROSTER = 0x04;
-
-        attribute unsigned short airflowDirection;
-
-        attribute unsigned short fanSpeed;
-
-        attribute unsigned short targetTemperature;
-
-        attribute boolean airConditioning;
-
-        attribute boolean airRecirculation;
-
-        attribute boolean heater;
-
-        attribute <ref>DefrostDictionary</ref> defrost;
-
-        attribute boolean steeringWheelHeater;
-
-        attribute boolean seatHeater;
-
-        attribute boolean seatCooler;
+interface AirbagStatus : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean activated;
+        readonly attribute boolean deployed;
+                         attribute <ref>Zone</ref>?   zone;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -2406,178 +2946,128 @@ interface HVAC : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Const name="AIRFLOWDIRECTION_FRONTPANEL" value="0" id="::HVAC::AIRFLOWDIRECTION_FRONTPANEL">
-      <webidl>        const unsigned short AIRFLOWDIRECTION_FRONTPANEL = 0;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="AIRFLOWDIRECTION_FLOORDUCT" value="1" id="::HVAC::AIRFLOWDIRECTION_FLOORDUCT">
-      <webidl>        const unsigned short AIRFLOWDIRECTION_FLOORDUCT= 1;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="AIRFLOWDIRECTION_FRONT" value="0x02" id="::HVAC::AIRFLOWDIRECTION_FRONT">
-      <webidl>        const unsigned short AIRFLOWDIRECTION_FRONT = 0x02;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="AIRFLOWDIRECTION_DEFROSTER" value="0x04" id="::HVAC::AIRFLOWDIRECTION_DEFROSTER">
-      <webidl>        const unsigned short AIRFLOWDIRECTION_DEFROSTER = 0x04;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Attribute name="airflowDirection" id="::HVAC::airflowDirection">
-      <webidl>        attribute unsigned short airflowDirection;</webidl>
-      <descriptive>
-         <description>
-          <p>
-AirflowDirection
-          </p>
-         </description>
-          <brief>
- Must return airflow direction.  See 
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
-    </Attribute>
-    <Attribute name="fanSpeed" id="::HVAC::fanSpeed">
-      <webidl>        attribute unsigned short fanSpeed;</webidl>
-      <descriptive>
-         <description>
-          <p>
-FanSpeed
-          </p>
-         </description>
-          <brief>
- Must return speed of the fan (0-7)    
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
-    </Attribute>
-    <Attribute name="targetTemperature" id="::HVAC::targetTemperature">
-      <webidl>        attribute unsigned short targetTemperature;</webidl>
-      <descriptive>
-         <description>
-          <p>
-TargetTemperature
-          </p>
-         </description>
-          <brief>
- Must return target desired temperature in celcius.    
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
-    </Attribute>
-    <Attribute name="airConditioning" id="::HVAC::airConditioning">
-      <webidl>        attribute boolean airConditioning;</webidl>
-      <descriptive>
-         <description>
-          <p>
-AirConditioning
-          </p>
-         </description>
-          <brief>
- Must return air conditioning on (true) / off (false).    
-          </brief>
-      </descriptive>
-      <Type type="boolean"/>
-    </Attribute>
-    <Attribute name="airRecirculation" id="::HVAC::airRecirculation">
-      <webidl>        attribute boolean airRecirculation;</webidl>
-      <descriptive>
-         <description>
-          <p>
-AirRecirculation
-          </p>
-         </description>
-          <brief>
- Must return air recirculation on (true) / off (false).    
-          </brief>
-      </descriptive>
+    <Attribute readonly="readonly" name="activated" id="::AirbagStatus::activated">
+      <webidl>        readonly attribute boolean activated;</webidl>
       <Type type="boolean"/>
     </Attribute>
-    <Attribute name="heater" id="::HVAC::heater">
-      <webidl>        attribute boolean heater;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Heater
-          </p>
-         </description>
-          <brief>
- Must return heater on (true) / off (false).    
-          </brief>
-      </descriptive>
+    <Attribute readonly="readonly" name="deployed" id="::AirbagStatus::deployed">
+      <webidl>        readonly attribute boolean deployed;</webidl>
       <Type type="boolean"/>
     </Attribute>
-    <Attribute name="defrost" id="::HVAC::defrost">
-      <webidl>        attribute <ref>DefrostDictionary</ref> defrost;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Defrost
-          </p>
-         </description>
-          <brief>
- Must return the defrost status of all windows equiped with defrosters.  This will return a dictionary of DefrostDictionary that represents    
-          </brief>
-          <brief>
- each window and its defrost status.    
-          </brief>
-      </descriptive>
-      <Type name="DefrostDictionary"/>
-    </Attribute>
-    <Attribute name="steeringWheelHeater" id="::HVAC::steeringWheelHeater">
-      <webidl>        attribute boolean steeringWheelHeater;</webidl>
-      <descriptive>
-         <description>
-          <p>
-SteeringWheelHeater
-          </p>
-         </description>
-          <brief>
- Must return air recirculation on (true) / off (false).    
-          </brief>
-      </descriptive>
-      <Type type="boolean"/>
+    <Attribute name="zone" id="::AirbagStatus::zone">
+      <webidl>                         attribute <ref>Zone</ref>?   zone;</webidl>
+      <Type name="Zone" nullable="nullable"/>
     </Attribute>
-    <Attribute name="seatHeater" id="::HVAC::seatHeater">
-      <webidl>        attribute boolean seatHeater;</webidl>
-      <descriptive>
-         <description>
-          <p>
-SeatHeater
-          </p>
-         </description>
-          <brief>
- Must return seat heater status: on (true) / off (false).    
-          </brief>
-      </descriptive>
+  </Interface>
+  <Enum name="DoorOpenStatus" id="::DoorOpenStatus">
+    <webidl>enum DoorOpenStatus {&quot;open&quot;, &quot;ajar&quot;, &quot;closed&quot;};</webidl>
+    <EnumValue stringvalue="open">
+      <webidl>&quot;open</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="ajar">
+      <webidl> &quot;ajar</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="closed">
+      <webidl> &quot;closed</webidl>
+    </EnumValue>
+  </Enum>
+  <Interface name="Door" id="::Door">
+    <webidl>[NoInterfaceObject]
+interface Door : <ref>VehicleCommonDataType</ref> {
+        readonly attribute <ref>DoorOpenStatus</ref> status;
+                     attribute boolean        lock;
+                         attribute <ref>Zone</ref>?          zone;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute readonly="readonly" name="status" id="::Door::status">
+      <webidl>        readonly attribute <ref>DoorOpenStatus</ref> status;</webidl>
+      <Type name="DoorOpenStatus"/>
+    </Attribute>
+    <Attribute name="lock" id="::Door::lock">
+      <webidl>                     attribute boolean        lock;</webidl>
       <Type type="boolean"/>
     </Attribute>
-    <Attribute name="seatCooler" id="::HVAC::seatCooler">
-      <webidl>        attribute boolean seatCooler;</webidl>
-      <descriptive>
-         <description>
-          <p>
-SeatCooler
-          </p>
-         </description>
-          <brief>
- Must return seat heater status: on (true) / off (false).    
-          </brief>
-      </descriptive>
+    <Attribute name="zone" id="::Door::zone">
+      <webidl>                         attribute <ref>Zone</ref>?          zone;</webidl>
+      <Type name="Zone" nullable="nullable"/>
+    </Attribute>
+  </Interface>
+  <Interface name="ChildSafetyLock" id="::ChildSafetyLock">
+    <webidl>[NoInterfaceObject]
+interface ChildSafetyLock : <ref>VehicleCommonDataType</ref> {
+        attribute boolean lock;
+        attribute <ref>Zone</ref>?   zone;
+};</webidl>
+    <ExtendedAttributeList>
+      <ExtendedAttribute name="NoInterfaceObject">
+        <webidl>NoInterfaceObject</webidl>
+      </ExtendedAttribute>
+    </ExtendedAttributeList>
+    <InterfaceInheritance>
+      <Name name="VehicleCommonDataType"/>
+    </InterfaceInheritance>
+    <Attribute name="lock" id="::ChildSafetyLock::lock">
+      <webidl>        attribute boolean lock;</webidl>
       <Type type="boolean"/>
     </Attribute>
+    <Attribute name="zone" id="::ChildSafetyLock::zone">
+      <webidl>        attribute <ref>Zone</ref>?   zone;</webidl>
+      <Type name="Zone" nullable="nullable"/>
+    </Attribute>
   </Interface>
-  <Interface name="WindowStatus" id="::WindowStatus">
+  <Enum name="OccupantStatus" id="::OccupantStatus">
+    <webidl>enum OccupantStatus {&quot;adult&quot;, &quot;child&quot;, &quot;vacant&quot;};</webidl>
+    <EnumValue stringvalue="adult">
+      <webidl>&quot;adult</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="child">
+      <webidl> &quot;child</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="vacant">
+      <webidl> &quot;vacant</webidl>
+    </EnumValue>
+  </Enum>
+  <Enum name="IdentificationType" id="::IdentificationType">
+    <webidl>enum IdentificationType {&quot;pin&quot;, &quot;keyfob&quot;, &quot;Bluetooth&quot;, &quot;NFC&quot;, &quot;fingerprint&quot;, &quot;camera&quot;, &quot;voice&quot;};</webidl>
+    <EnumValue stringvalue="pin">
+      <webidl>&quot;pin</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="keyfob">
+      <webidl> &quot;keyfob</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="Bluetooth">
+      <webidl> &quot;Bluetooth</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="NFC">
+      <webidl> &quot;NFC</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="fingerprint">
+      <webidl> &quot;fingerprint</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="camera">
+      <webidl> &quot;camera</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="voice">
+      <webidl> &quot;voice</webidl>
+    </EnumValue>
+  </Enum>
+  <Interface name="Seat" id="::Seat">
     <webidl>[NoInterfaceObject]
-interface WindowStatus : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short WINDOWLOCATION_DRIVER= 0;    
-        const unsigned short WINDOWLOCATION_PASSENGER = 1;    
-        const unsigned short WINDOWLOCATION_LEFTREAR = 2;    
-        const unsigned short WINDOWLOCATION_RIGHTREAR = 3;    
-        const unsigned short WINDOWLOCATION_REAR = 4;    
-
-        attribute object WindowStatus;
+interface Seat : <ref>VehicleCommonDataType</ref> {
+        readonly attribute <ref>OccupantStatus</ref>     occupant;
+        readonly attribute boolean            seatbelt;
+        readonly attribute DOMString?         occupantName;
+        readonly attribute <ref>IdentificationType</ref> identificationType;
+                         attribute <ref>Zone</ref>?              zone;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -2585,51 +3075,34 @@ interface WindowStatus : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Const name="WINDOWLOCATION_DRIVER" value="0" id="::WindowStatus::WINDOWLOCATION_DRIVER">
-      <webidl>        const unsigned short WINDOWLOCATION_DRIVER= 0;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="WINDOWLOCATION_PASSENGER" value="1" id="::WindowStatus::WINDOWLOCATION_PASSENGER">
-      <webidl>        const unsigned short WINDOWLOCATION_PASSENGER = 1;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="WINDOWLOCATION_LEFTREAR" value="2" id="::WindowStatus::WINDOWLOCATION_LEFTREAR">
-      <webidl>        const unsigned short WINDOWLOCATION_LEFTREAR = 2;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="WINDOWLOCATION_RIGHTREAR" value="3" id="::WindowStatus::WINDOWLOCATION_RIGHTREAR">
-      <webidl>        const unsigned short WINDOWLOCATION_RIGHTREAR = 3;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="WINDOWLOCATION_REAR" value="4" id="::WindowStatus::WINDOWLOCATION_REAR">
-      <webidl>        const unsigned short WINDOWLOCATION_REAR = 4;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Attribute name="WindowStatus" id="::WindowStatus::WindowStatus">
-      <webidl>        attribute object WindowStatus;</webidl>
-      <descriptive>
-         <description>
-          <p>
-WindowStatus
-          </p>
-         </description>
-          <brief>
- Must return window status for each window location.  object returned is a    
-dictionary { unsigned short windowlocation, unsigned short percentage opened }    
-          </brief>
-      </descriptive>
-      <Type type="object"/>
+    <Attribute readonly="readonly" name="occupant" id="::Seat::occupant">
+      <webidl>        readonly attribute <ref>OccupantStatus</ref>     occupant;</webidl>
+      <Type name="OccupantStatus"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="seatbelt" id="::Seat::seatbelt">
+      <webidl>        readonly attribute boolean            seatbelt;</webidl>
+      <Type type="boolean"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="occupantName" id="::Seat::occupantName">
+      <webidl>        readonly attribute DOMString?         occupantName;</webidl>
+      <Type type="DOMString" nullable="nullable"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="identificationType" id="::Seat::identificationType">
+      <webidl>        readonly attribute <ref>IdentificationType</ref> identificationType;</webidl>
+      <Type name="IdentificationType"/>
+    </Attribute>
+    <Attribute name="zone" id="::Seat::zone">
+      <webidl>                         attribute <ref>Zone</ref>?              zone;</webidl>
+      <Type name="Zone" nullable="nullable"/>
     </Attribute>
   </Interface>
-  <Interface name="Sunroof" id="::Sunroof">
+  <Interface name="Temperature" id="::Temperature">
     <webidl>[NoInterfaceObject]
-interface Sunroof : <ref>VehiclePropertyType</ref>  { 
-
-        attribute unsigned short openness;
-
-        attribute unsigned short tilt;
+interface Temperature : <ref>VehicleCommonDataType</ref> {
+        readonly attribute float interiorTemperature;
+        readonly attribute float exteriorTemperature;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -2637,42 +3110,22 @@ interface Sunroof : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="openness" id="::Sunroof::openness">
-      <webidl>        attribute unsigned short openness;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Openness
-          </p>
-         </description>
-          <brief>
- Must return window status for sunroof openness percentage.    
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
+    <Attribute readonly="readonly" name="interiorTemperature" id="::Temperature::interiorTemperature">
+      <webidl>        readonly attribute float interiorTemperature;</webidl>
+      <Type type="float"/>
     </Attribute>
-    <Attribute name="tilt" id="::Sunroof::tilt">
-      <webidl>        attribute unsigned short tilt;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Tilt
-          </p>
-         </description>
-          <brief>
- Must return tilt status for sunroof percentage.    
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
+    <Attribute readonly="readonly" name="exteriorTemperature" id="::Temperature::exteriorTemperature">
+      <webidl>        readonly attribute float exteriorTemperature;</webidl>
+      <Type type="float"/>
     </Attribute>
   </Interface>
-  <Interface name="ConvertibleRoof" id="::ConvertibleRoof">
+  <Interface name="RainSensor" id="::RainSensor">
     <webidl>[NoInterfaceObject]
-interface ConvertibleRoof : <ref>VehiclePropertyType</ref>  { 
-
-        attribute unsigned short openness;
+interface RainSensor : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short rain;
+                     attribute <ref>Zone</ref>?         zone;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -2680,30 +3133,22 @@ interface ConvertibleRoof : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="openness" id="::ConvertibleRoof::openness">
-      <webidl>        attribute unsigned short openness;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Openness
-          </p>
-         </description>
-          <brief>
- Must return window status for sunroof openness percentage.    
-          </brief>
-      </descriptive>
+    <Attribute readonly="readonly" name="rain" id="::RainSensor::rain">
+      <webidl>        readonly attribute unsigned short rain;</webidl>
       <Type type="unsigned short"/>
     </Attribute>
+    <Attribute name="zone" id="::RainSensor::zone">
+      <webidl>                     attribute <ref>Zone</ref>?         zone;</webidl>
+      <Type name="Zone" nullable="nullable"/>
+    </Attribute>
   </Interface>
-  <Interface name="VehicleId" id="::VehicleId">
+  <Interface name="WiperStatus" id="::WiperStatus">
     <webidl>[NoInterfaceObject]
-interface VehicleId : <ref>VehiclePropertyType</ref>  { 
-
-         attribute DOMString WMI;
-
-         attribute DOMString VIN;
+interface WiperStatus : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short wiperSpeed;
+                     attribute <ref>Zone</ref>?         zone;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -2711,47 +3156,49 @@ interface VehicleId : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="WMI" id="::VehicleId::WMI">
-      <webidl>         attribute DOMString WMI;</webidl>
-      <descriptive>
-         <description>
-          <p>
-WMI
-          </p>
-         </description>
-          <brief>
- MUST return World Manufacturer Identifier (WMI)    
-WMI is defined by SAE ISO 3780:2009.  3 characters.    
-          </brief>
-      </descriptive>
-      <Type type="DOMString"/>
+    <Attribute readonly="readonly" name="wiperSpeed" id="::WiperStatus::wiperSpeed">
+      <webidl>        readonly attribute unsigned short wiperSpeed;</webidl>
+      <Type type="unsigned short"/>
     </Attribute>
-    <Attribute name="VIN" id="::VehicleId::VIN">
-      <webidl>         attribute DOMString VIN;</webidl>
-      <descriptive>
-         <description>
-          <p>
-VIN
-          </p>
-         </description>
-          <brief>
- MUST return Vehicle Identification Number (VIN) as defined by ISO 3779. 17 characters.    
-          </brief>
-      </descriptive>
-      <Type type="DOMString"/>
+    <Attribute name="zone" id="::WiperStatus::zone">
+      <webidl>                     attribute <ref>Zone</ref>?         zone;</webidl>
+      <Type name="Zone" nullable="nullable"/>
     </Attribute>
   </Interface>
-  <Interface name="Size" id="::Size">
+  <Enum name="WiperControl" id="::WiperControl">
+    <webidl>enum WiperControl {&quot;off&quot;, &quot;once&quot;, &quot;slowest&quot;, &quot;slow&quot;, &quot;middle&quot;, &quot;fast&quot;, &quot;fastest&quot;, &quot;auto&quot;};</webidl>
+    <EnumValue stringvalue="off">
+      <webidl>&quot;off</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="once">
+      <webidl> &quot;once</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="slowest">
+      <webidl> &quot;slowest</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="slow">
+      <webidl> &quot;slow</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="middle">
+      <webidl> &quot;middle</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="fast">
+      <webidl> &quot;fast</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="fastest">
+      <webidl> &quot;fastest</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="auto">
+      <webidl> &quot;auto</webidl>
+    </EnumValue>
+  </Enum>
+  <Interface name="WiperSetting" id="::WiperSetting">
     <webidl>[NoInterfaceObject]
-interface Size : <ref>VehiclePropertyType</ref>  { 
-
-         attribute unsigned long width;
-
-         attribute unsigned long height;
-
-         attribute unsigned long length;
+interface WiperSetting : <ref>VehicleCommonDataType</ref> {
+        attribute <ref>WiperControl</ref> wiperControl;
+        attribute <ref>Zone</ref>?        zone;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -2759,67 +3206,23 @@ interface Size : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="width" id="::Size::width">
-      <webidl>         attribute unsigned long width;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Width
-          </p>
-         </description>
-          <brief>
- MUST return width of vehicle in mm    
-          </brief>
-      </descriptive>
-      <Type type="unsigned long"/>
-    </Attribute>
-    <Attribute name="height" id="::Size::height">
-      <webidl>         attribute unsigned long height;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Height
-          </p>
-         </description>
-          <brief>
- MUST return height of vehicle in mm    
-          </brief>
-      </descriptive>
-      <Type type="unsigned long"/>
+    <Attribute name="wiperControl" id="::WiperSetting::wiperControl">
+      <webidl>        attribute <ref>WiperControl</ref> wiperControl;</webidl>
+      <Type name="WiperControl"/>
     </Attribute>
-    <Attribute name="length" id="::Size::length">
-      <webidl>         attribute unsigned long length;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Length
-          </p>
-         </description>
-          <brief>
- MUST return length of vehicle in mm    
-          </brief>
-      </descriptive>
-      <Type type="unsigned long"/>
+    <Attribute name="zone" id="::WiperSetting::zone">
+      <webidl>        attribute <ref>Zone</ref>?        zone;</webidl>
+      <Type name="Zone" nullable="nullable"/>
     </Attribute>
   </Interface>
-  <Interface name="FuelInfo" id="::FuelInfo">
+  <Interface name="Defrost" id="::Defrost">
     <webidl>[NoInterfaceObject]
-interface FuelInfo : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short FUELTYPE_GASOLINE = 0;    
-        const unsigned short FUELTYPE_HIGH_OCTANE= 1;    
-        const unsigned short FUELTYPE_DIESEL = 2;    
-        const unsigned short FUELTYPE_ELECTRIC = 3;    
-        const unsigned short FUELTYPE_HYDROGEN = 4;    
-        const unsigned short REFUELPOSITION_LEFT = 0;    
-        const unsigned short REFUELPOSITION_RIGHT= 1;    
-        const unsigned short REFUELPOSITION_FRONT = 2;    
-        const unsigned short REFUELPOSITION_REAR = 3;    
-
-         attribute unsigned short type;
-
-         attribute unsigned short refuelPosition;
+interface Defrost : <ref>VehicleCommonDataType</ref> {
+        attribute boolean? defrostWindow;
+        attribute boolean? defrostMirrors;
+        attribute <ref>Zone</ref>?    zone;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -2827,84 +3230,49 @@ interface FuelInfo : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Const name="FUELTYPE_GASOLINE" value="0" id="::FuelInfo::FUELTYPE_GASOLINE">
-      <webidl>        const unsigned short FUELTYPE_GASOLINE = 0;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="FUELTYPE_HIGH_OCTANE" value="1" id="::FuelInfo::FUELTYPE_HIGH_OCTANE">
-      <webidl>        const unsigned short FUELTYPE_HIGH_OCTANE= 1;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="FUELTYPE_DIESEL" value="2" id="::FuelInfo::FUELTYPE_DIESEL">
-      <webidl>        const unsigned short FUELTYPE_DIESEL = 2;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="FUELTYPE_ELECTRIC" value="3" id="::FuelInfo::FUELTYPE_ELECTRIC">
-      <webidl>        const unsigned short FUELTYPE_ELECTRIC = 3;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="FUELTYPE_HYDROGEN" value="4" id="::FuelInfo::FUELTYPE_HYDROGEN">
-      <webidl>        const unsigned short FUELTYPE_HYDROGEN = 4;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="REFUELPOSITION_LEFT" value="0" id="::FuelInfo::REFUELPOSITION_LEFT">
-      <webidl>        const unsigned short REFUELPOSITION_LEFT = 0;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="REFUELPOSITION_RIGHT" value="1" id="::FuelInfo::REFUELPOSITION_RIGHT">
-      <webidl>        const unsigned short REFUELPOSITION_RIGHT= 1;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="REFUELPOSITION_FRONT" value="2" id="::FuelInfo::REFUELPOSITION_FRONT">
-      <webidl>        const unsigned short REFUELPOSITION_FRONT = 2;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="REFUELPOSITION_REAR" value="3" id="::FuelInfo::REFUELPOSITION_REAR">
-      <webidl>        const unsigned short REFUELPOSITION_REAR = 3;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Attribute name="type" id="::FuelInfo::type">
-      <webidl>         attribute unsigned short type;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Type
-          </p>
-         </description>
-          <brief>
- MUST return type of fuel.  integer 0-4 (see 
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
+    <Attribute name="defrostWindow" id="::Defrost::defrostWindow">
+      <webidl>        attribute boolean? defrostWindow;</webidl>
+      <Type type="boolean" nullable="nullable"/>
     </Attribute>
-    <Attribute name="refuelPosition" id="::FuelInfo::refuelPosition">
-      <webidl>         attribute unsigned short refuelPosition;</webidl>
-      <descriptive>
-         <description>
-          <p>
-RefuelPosition
-          </p>
-         </description>
-          <brief>
- MUST return position of refuling (see 
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
+    <Attribute name="defrostMirrors" id="::Defrost::defrostMirrors">
+      <webidl>        attribute boolean? defrostMirrors;</webidl>
+      <Type type="boolean" nullable="nullable"/>
+    </Attribute>
+    <Attribute name="zone" id="::Defrost::zone">
+      <webidl>        attribute <ref>Zone</ref>?    zone;</webidl>
+      <Type name="Zone" nullable="nullable"/>
     </Attribute>
   </Interface>
-  <Interface name="VehicleType" id="::VehicleType">
+  <Enum name="AirflowDirection" id="::AirflowDirection">
+    <webidl>enum AirflowDirection {&quot;frontpanel&quot;, &quot;floorduct&quot;, &quot;bilevel&quot;, &quot;defrostfloor&quot;};</webidl>
+    <EnumValue stringvalue="frontpanel">
+      <webidl>&quot;frontpanel</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="floorduct">
+      <webidl> &quot;floorduct</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="bilevel">
+      <webidl> &quot;bilevel</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="defrostfloor">
+      <webidl> &quot;defrostfloor</webidl>
+    </EnumValue>
+  </Enum>
+  <Interface name="ClimateControl" id="::ClimateControl">
     <webidl>[NoInterfaceObject]
-interface VehicleType : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short VEHICLETYPE_SEDAN = 0;    
-        const unsigned short VEHICLETYPE_COUPE= 1;    
-        const unsigned short VEHICLETYPE_CABRIOLE = 2;    
-        const unsigned short VEHICLETYPE_ROADSTER = 3;    
-        const unsigned short VEHICLETYPE_SUV = 4;    
-        const unsigned short VEHICLETYPE_TRUCK = 5;    
-
-         attribute unsigned short type;
+interface ClimateControl : <ref>VehicleCommonDataType</ref> {
+        attribute <ref>AirflowDirection</ref> airflowDirection;
+        attribute unsigned short    fanSpeedLevel;
+        attribute byte?            targetTemperature;
+        attribute boolean          airConditioning;
+        attribute boolean          heater;
+        attribute unsigned short?   seatHeater;
+        attribute unsigned short?   seatCooler;
+        attribute boolean          airRecirculation;
+        attribute unsigned short?   steeringWheelHeater;
+        attribute <ref>Zone</ref>?            zone;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -2912,52 +3280,55 @@ interface VehicleType : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Const name="VEHICLETYPE_SEDAN" value="0" id="::VehicleType::VEHICLETYPE_SEDAN">
-      <webidl>        const unsigned short VEHICLETYPE_SEDAN = 0;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="VEHICLETYPE_COUPE" value="1" id="::VehicleType::VEHICLETYPE_COUPE">
-      <webidl>        const unsigned short VEHICLETYPE_COUPE= 1;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="VEHICLETYPE_CABRIOLE" value="2" id="::VehicleType::VEHICLETYPE_CABRIOLE">
-      <webidl>        const unsigned short VEHICLETYPE_CABRIOLE = 2;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="VEHICLETYPE_ROADSTER" value="3" id="::VehicleType::VEHICLETYPE_ROADSTER">
-      <webidl>        const unsigned short VEHICLETYPE_ROADSTER = 3;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="VEHICLETYPE_SUV" value="4" id="::VehicleType::VEHICLETYPE_SUV">
-      <webidl>        const unsigned short VEHICLETYPE_SUV = 4;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="VEHICLETYPE_TRUCK" value="5" id="::VehicleType::VEHICLETYPE_TRUCK">
-      <webidl>        const unsigned short VEHICLETYPE_TRUCK = 5;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Attribute name="type" id="::VehicleType::type">
-      <webidl>         attribute unsigned short type;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Type
-          </p>
-         </description>
-          <brief>
- MUST return type of Vehicle.  Integer 0-5 (see 
-          </brief>
-      </descriptive>
+    <Attribute name="airflowDirection" id="::ClimateControl::airflowDirection">
+      <webidl>        attribute <ref>AirflowDirection</ref> airflowDirection;</webidl>
+      <Type name="AirflowDirection"/>
+    </Attribute>
+    <Attribute name="fanSpeedLevel" id="::ClimateControl::fanSpeedLevel">
+      <webidl>        attribute unsigned short    fanSpeedLevel;</webidl>
       <Type type="unsigned short"/>
     </Attribute>
+    <Attribute name="targetTemperature" id="::ClimateControl::targetTemperature">
+      <webidl>        attribute byte?            targetTemperature;</webidl>
+      <Type type="byte" nullable="nullable"/>
+    </Attribute>
+    <Attribute name="airConditioning" id="::ClimateControl::airConditioning">
+      <webidl>        attribute boolean          airConditioning;</webidl>
+      <Type type="boolean"/>
+    </Attribute>
+    <Attribute name="heater" id="::ClimateControl::heater">
+      <webidl>        attribute boolean          heater;</webidl>
+      <Type type="boolean"/>
+    </Attribute>
+    <Attribute name="seatHeater" id="::ClimateControl::seatHeater">
+      <webidl>        attribute unsigned short?   seatHeater;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
+    </Attribute>
+    <Attribute name="seatCooler" id="::ClimateControl::seatCooler">
+      <webidl>        attribute unsigned short?   seatCooler;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
+    </Attribute>
+    <Attribute name="airRecirculation" id="::ClimateControl::airRecirculation">
+      <webidl>        attribute boolean          airRecirculation;</webidl>
+      <Type type="boolean"/>
+    </Attribute>
+    <Attribute name="steeringWheelHeater" id="::ClimateControl::steeringWheelHeater">
+      <webidl>        attribute unsigned short?   steeringWheelHeater;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
+    </Attribute>
+    <Attribute name="zone" id="::ClimateControl::zone">
+      <webidl>        attribute <ref>Zone</ref>?            zone;</webidl>
+      <Type name="Zone" nullable="nullable"/>
+    </Attribute>
   </Interface>
-  <Interface name="Doors" id="::Doors">
+  <Interface name="Sunroof" id="::Sunroof">
     <webidl>[NoInterfaceObject]
-interface Doors : <ref>VehiclePropertyType</ref>  { 
-
-         attribute sequence&lt;unsigned short> doorsPerRow;
+interface Sunroof : <ref>VehicleCommonDataType</ref> {
+        attribute unsigned short openness;
+        attribute unsigned short tilt;
+        attribute <ref>Zone</ref>?         zone;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -2965,36 +3336,40 @@ interface Doors : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="doorsPerRow" id="::Doors::doorsPerRow">
-      <webidl>         attribute sequence&lt;unsigned short> doorsPerRow;</webidl>
-      <descriptive>
-         <description>
-          <p>
-DoorsPerRow
-          </p>
-         </description>
-          <brief>
- MUST return Number of doors in each row.  The index represents the row.  Position '0'    
-represents the first row, '1' the second row etc.    
-Example a common mini-van may have Doors[0] = 2 doors,    
-Doors[1] = 1 (side door), Doors[2] = 1 (trunk).    
-          </brief>
-      </descriptive>
-      <Type type="sequence">
-        <Type type="unsigned short"/>
-      </Type>
+    <Attribute name="openness" id="::Sunroof::openness">
+      <webidl>        attribute unsigned short openness;</webidl>
+      <Type type="unsigned short"/>
+    </Attribute>
+    <Attribute name="tilt" id="::Sunroof::tilt">
+      <webidl>        attribute unsigned short tilt;</webidl>
+      <Type type="unsigned short"/>
+    </Attribute>
+    <Attribute name="zone" id="::Sunroof::zone">
+      <webidl>        attribute <ref>Zone</ref>?         zone;</webidl>
+      <Type name="Zone" nullable="nullable"/>
     </Attribute>
   </Interface>
-  <Interface name="TransmissionGearType" id="::TransmissionGearType">
+  <Enum name="ConvertibleRoofStatus" id="::ConvertibleRoofStatus">
+    <webidl>enum ConvertibleRoofStatus {&quot;closed&quot;, &quot;closing&quot;, &quot;opening&quot;, &quot;opened&quot;};</webidl>
+    <EnumValue stringvalue="closed">
+      <webidl>&quot;closed</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="closing">
+      <webidl> &quot;closing</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="opening">
+      <webidl> &quot;opening</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="opened">
+      <webidl> &quot;opened</webidl>
+    </EnumValue>
+  </Enum>
+  <Interface name="ConvertibleRoof" id="::ConvertibleRoof">
     <webidl>[NoInterfaceObject]
-interface TransmissionGearType : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short TRANSMISSIONGEARTYPE_AUTO=0;    
-        const unsigned short TRANSMISSIONGEARTYPE_MANUAL=1;    
-        const unsigned short TRANSMISSIONGEARTYPE_CV=2;    
-
-         attribute unsigned short transmissionGearType;
+interface ConvertibleRoof : <ref>VehicleCommonDataType</ref> {
+        attribute <ref>ConvertibleRoofStatus</ref> status;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -3002,46 +3377,19 @@ interface TransmissionGearType : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Const name="TRANSMISSIONGEARTYPE_AUTO" value="0" id="::TransmissionGearType::TRANSMISSIONGEARTYPE_AUTO">
-      <webidl>        const unsigned short TRANSMISSIONGEARTYPE_AUTO=0;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="TRANSMISSIONGEARTYPE_MANUAL" value="1" id="::TransmissionGearType::TRANSMISSIONGEARTYPE_MANUAL">
-      <webidl>        const unsigned short TRANSMISSIONGEARTYPE_MANUAL=1;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="TRANSMISSIONGEARTYPE_CV" value="2" id="::TransmissionGearType::TRANSMISSIONGEARTYPE_CV">
-      <webidl>        const unsigned short TRANSMISSIONGEARTYPE_CV=2;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Attribute name="transmissionGearType" id="::TransmissionGearType::transmissionGearType">
-      <webidl>         attribute unsigned short transmissionGearType;</webidl>
-      <descriptive>
-         <description>
-          <p>
-TransmissionGearType
-          </p>
-         </description>
-          <brief>
- MUST return transmission gear type of either Automatic, Manual or Constant Variable (CV).  See 
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
+    <Attribute name="status" id="::ConvertibleRoof::status">
+      <webidl>        attribute <ref>ConvertibleRoofStatus</ref> status;</webidl>
+      <Type name="ConvertibleRoofStatus"/>
     </Attribute>
   </Interface>
-  <Interface name="WheelInformation" id="::WheelInformation">
+  <Interface name="SideWindow" id="::SideWindow">
     <webidl>[NoInterfaceObject]
-interface WheelInformation : <ref>VehiclePropertyType</ref>  { 
-
-         attribute unsigned short frontWheelRadius;
-
-         attribute unsigned short rearWheelRadius;
-
-         attribute unsigned long wheelTrack;
-
-         attribute boolean ABS;
+interface SideWindow : <ref>VehicleCommonDataType</ref> {
+        attribute boolean? lock;
+        attribute unsigned short?    openness;
+        attribute <ref>Zone</ref>?             zone;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -3049,70 +3397,25 @@ interface WheelInformation : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="frontWheelRadius" id="::WheelInformation::frontWheelRadius">
-      <webidl>         attribute unsigned short frontWheelRadius;</webidl>
-      <descriptive>
-         <description>
-          <p>
-FrontWheelRadius
-          </p>
-         </description>
-          <brief>
- MUST return Radius of Front Wheel(s) in mm.    
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
-    </Attribute>
-    <Attribute name="rearWheelRadius" id="::WheelInformation::rearWheelRadius">
-      <webidl>         attribute unsigned short rearWheelRadius;</webidl>
-      <descriptive>
-         <description>
-          <p>
-RearWheelRadius
-          </p>
-         </description>
-          <brief>
- MUST return Radius of Rear Wheel(s) in mm.    
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
+    <Attribute name="lock" id="::SideWindow::lock">
+      <webidl>        attribute boolean? lock;</webidl>
+      <Type type="boolean" nullable="nullable"/>
     </Attribute>
-    <Attribute name="wheelTrack" id="::WheelInformation::wheelTrack">
-      <webidl>         attribute unsigned long wheelTrack;</webidl>
-      <descriptive>
-         <description>
-          <p>
-WheelTrack
-          </p>
-         </description>
-          <brief>
- MUST return Wheel Track in mm.    
-          </brief>
-      </descriptive>
-      <Type type="unsigned long"/>
+    <Attribute name="openness" id="::SideWindow::openness">
+      <webidl>        attribute unsigned short?    openness;</webidl>
+      <Type type="unsigned short" nullable="nullable"/>
     </Attribute>
-    <Attribute name="ABS" id="::WheelInformation::ABS">
-      <webidl>         attribute boolean ABS;</webidl>
-      <descriptive>
-         <description>
-          <p>
-ABS
-          </p>
-         </description>
-          <brief>
- MUST return Antilock Brake System status: on = true, off = false.    
-          </brief>
-      </descriptive>
-      <Type type="boolean"/>
+    <Attribute name="zone" id="::SideWindow::zone">
+      <webidl>        attribute <ref>Zone</ref>?             zone;</webidl>
+      <Type name="Zone" nullable="nullable"/>
     </Attribute>
   </Interface>
-  <Interface name="Odometer" id="::Odometer">
+  <Interface name="AtmosphericPressure" id="::AtmosphericPressure">
     <webidl>[NoInterfaceObject]
-interface Odometer : <ref>VehiclePropertyType</ref>  { 
-
-         attribute unsigned long odometer;
+interface AtmosphericPressure : <ref>VehicleCommonDataType</ref> {
+        readonly attribute unsigned short pressure;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -3120,32 +3423,29 @@ interface Odometer : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="odometer" id="::Odometer::odometer">
-      <webidl>         attribute unsigned long odometer;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Odometer
-          </p>
-         </description>
-          <brief>
- MUST return Distance traveled in km    
-          </brief>
-      </descriptive>
-      <Type type="unsigned long"/>
+    <Attribute readonly="readonly" name="pressure" id="::AtmosphericPressure::pressure">
+      <webidl>        readonly attribute unsigned short pressure;</webidl>
+      <Type type="unsigned short"/>
     </Attribute>
   </Interface>
-  <Interface name="Fluid" id="::Fluid">
+  <Enum name="LaneDepartureStatus" id="::LaneDepartureStatus">
+    <webidl>enum LaneDepartureStatus {&quot;off&quot;, &quot;pause&quot;, &quot;running&quot;};</webidl>
+    <EnumValue stringvalue="off">
+      <webidl>&quot;off</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="pause">
+      <webidl> &quot;pause</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="running">
+      <webidl> &quot;running</webidl>
+    </EnumValue>
+  </Enum>
+  <Interface name="LaneDepartureDetection" id="::LaneDepartureDetection">
     <webidl>[NoInterfaceObject]
-interface Fluid : <ref>VehiclePropertyType</ref>  { 
-
-         attribute unsigned short transmission;
-
-         attribute unsigned short brake;
-
-         attribute unsigned short washer;
+interface LaneDepartureDetection : <ref>VehicleCommonDataType</ref> {
+        readonly attribute <ref>LaneDepartureStatus</ref> status;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -3153,58 +3453,32 @@ interface Fluid : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="transmission" id="::Fluid::transmission">
-      <webidl>         attribute unsigned short transmission;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Transmission
-          </p>
-         </description>
-          <brief>
- MUST return Transmission fluid level percentage. 0-100.    
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
-    </Attribute>
-    <Attribute name="brake" id="::Fluid::brake">
-      <webidl>         attribute unsigned short brake;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Brake
-          </p>
-         </description>
-          <brief>
- MUST return Brake fluid level percentage. 0-100.    
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
-    </Attribute>
-    <Attribute name="washer" id="::Fluid::washer">
-      <webidl>         attribute unsigned short washer;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Washer
-          </p>
-         </description>
-          <brief>
- MUST return Washer fluid level percentage. 0-100.    
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
+    <Attribute readonly="readonly" name="status" id="::LaneDepartureDetection::status">
+      <webidl>        readonly attribute <ref>LaneDepartureStatus</ref> status;</webidl>
+      <Type name="LaneDepartureStatus"/>
     </Attribute>
   </Interface>
-  <Interface name="Battery" id="::Battery">
+  <Enum name="AlarmStatus" id="::AlarmStatus">
+    <webidl>enum AlarmStatus {&quot;disarmed&quot;, &quot;preArmed&quot;, &quot;armed&quot;, &quot;alarmed&quot;};</webidl>
+    <EnumValue stringvalue="disarmed">
+      <webidl>&quot;disarmed</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="preArmed">
+      <webidl> &quot;preArmed</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="armed">
+      <webidl> &quot;armed</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="alarmed">
+      <webidl> &quot;alarmed</webidl>
+    </EnumValue>
+  </Enum>
+  <Interface name="Alarm" id="::Alarm">
     <webidl>[NoInterfaceObject]
-interface Battery : <ref>VehiclePropertyType</ref>  { 
-
-         attribute double voltage;
-
-         attribute double current;
+interface Alarm : <ref>VehicleCommonDataType</ref> {
+        attribute <ref>AlarmStatus</ref> status;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -3212,48 +3486,29 @@ interface Battery : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="voltage" id="::Battery::voltage">
-      <webidl>         attribute double voltage;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Voltage
-          </p>
-         </description>
-          <brief>
- MUST return battery voltage.    
-          </brief>
-      </descriptive>
-      <Type type="double"/>
-    </Attribute>
-    <Attribute name="current" id="::Battery::current">
-      <webidl>         attribute double current;</webidl>
-      <descriptive>
-         <description>
-          <p>
-Current
-          </p>
-         </description>
-          <brief>
- MUST return battery current in Amperes    
-          </brief>
-      </descriptive>
-      <Type type="double"/>
+    <Attribute name="status" id="::Alarm::status">
+      <webidl>        attribute <ref>AlarmStatus</ref> status;</webidl>
+      <Type name="AlarmStatus"/>
     </Attribute>
   </Interface>
-  <Interface name="TirePressure" id="::TirePressure">
+  <Enum name="ParkingBrakeStatus" id="::ParkingBrakeStatus">
+    <webidl>enum ParkingBrakeStatus {&quot;inactive&quot;, &quot;active&quot;, &quot;error&quot;};</webidl>
+    <EnumValue stringvalue="inactive">
+      <webidl>&quot;inactive</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="active">
+      <webidl> &quot;active</webidl>
+    </EnumValue>
+    <EnumValue stringvalue="error">
+      <webidl> &quot;error</webidl>
+    </EnumValue>
+  </Enum>
+  <Interface name="ParkingBrake" id="::ParkingBrake">
     <webidl>[NoInterfaceObject]
-interface TirePressure : <ref>VehiclePropertyType</ref>  { 
-
-         attribute double leftFront;
-
-         attribute double rightFront;
-
-         attribute double leftRear;
-
-         attribute double rightRear;
+interface ParkingBrake : <ref>VehicleCommonDataType</ref> {
+        readonly attribute <ref>ParkingBrakeStatus</ref> status;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -3261,76 +3516,18 @@ interface TirePressure : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="leftFront" id="::TirePressure::leftFront">
-      <webidl>         attribute double leftFront;</webidl>
-      <descriptive>
-         <description>
-          <p>
-LeftFront
-          </p>
-         </description>
-          <brief>
- MUST return left front tire pressure in kPa.    
-          </brief>
-      </descriptive>
-      <Type type="double"/>
-    </Attribute>
-    <Attribute name="rightFront" id="::TirePressure::rightFront">
-      <webidl>         attribute double rightFront;</webidl>
-      <descriptive>
-         <description>
-          <p>
-RightFront
-          </p>
-         </description>
-          <brief>
- MUST return right front tire pressure in kPa.    
-          </brief>
-      </descriptive>
-      <Type type="double"/>
-    </Attribute>
-    <Attribute name="leftRear" id="::TirePressure::leftRear">
-      <webidl>         attribute double leftRear;</webidl>
-      <descriptive>
-         <description>
-          <p>
-LeftRear
-          </p>
-         </description>
-          <brief>
- MUST return left rear tire pressure in kPa.    
-          </brief>
-      </descriptive>
-      <Type type="double"/>
-    </Attribute>
-    <Attribute name="rightRear" id="::TirePressure::rightRear">
-      <webidl>         attribute double rightRear;</webidl>
-      <descriptive>
-         <description>
-          <p>
-RightRear
-          </p>
-         </description>
-          <brief>
- MUST return right rear tire pressure in kPa.    
-          </brief>
-      </descriptive>
-      <Type type="double"/>
+    <Attribute readonly="readonly" name="status" id="::ParkingBrake::status">
+      <webidl>        readonly attribute <ref>ParkingBrakeStatus</ref> status;</webidl>
+      <Type name="ParkingBrakeStatus"/>
     </Attribute>
   </Interface>
-  <Interface name="TireTemperature" id="::TireTemperature">
+  <Interface name="ParkingLights" id="::ParkingLights">
     <webidl>[NoInterfaceObject]
-interface TireTemperature : <ref>VehiclePropertyType</ref>  { 
-
-         attribute double leftFront;
-
-         attribute double rightFront;
-
-         attribute double leftRear;
-
-         attribute double rightRear;
+interface ParkingLights : <ref>VehicleCommonDataType</ref> {
+        readonly attribute boolean status;
+                     attribute boolean setting;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
@@ -3338,630 +3535,389 @@ interface TireTemperature : <ref>VehiclePropertyType</ref>  {
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
+      <Name name="VehicleCommonDataType"/>
     </InterfaceInheritance>
-    <Attribute name="leftFront" id="::TireTemperature::leftFront">
-      <webidl>         attribute double leftFront;</webidl>
-      <descriptive>
-         <description>
-          <p>
-LeftFront
-          </p>
-         </description>
-          <brief>
- MUST return left front tire temperature in Celcius.    
-          </brief>
-      </descriptive>
-      <Type type="double"/>
-    </Attribute>
-    <Attribute name="rightFront" id="::TireTemperature::rightFront">
-      <webidl>         attribute double rightFront;</webidl>
-      <descriptive>
-         <description>
-          <p>
-RightFront
-          </p>
-         </description>
-          <brief>
- MUST return right front tire temperature in Celcius.    
-          </brief>
-      </descriptive>
-      <Type type="double"/>
-    </Attribute>
-    <Attribute name="leftRear" id="::TireTemperature::leftRear">
-      <webidl>         attribute double leftRear;</webidl>
-      <descriptive>
-         <description>
-          <p>
-LeftRear
-          </p>
-         </description>
-          <brief>
- MUST return left rear tire temperature in Celcius.    
-          </brief>
-      </descriptive>
-      <Type type="double"/>
+    <Attribute readonly="readonly" name="status" id="::ParkingLights::status">
+      <webidl>        readonly attribute boolean status;</webidl>
+      <Type type="boolean"/>
     </Attribute>
-    <Attribute name="rightRear" id="::TireTemperature::rightRear">
-      <webidl>         attribute double rightRear;</webidl>
-      <descriptive>
-         <description>
-          <p>
-RightRear
-          </p>
-         </description>
-          <brief>
- MUST return right rear tire temperature in Celcius.    
-          </brief>
-      </descriptive>
-      <Type type="double"/>
+    <Attribute name="setting" id="::ParkingLights::setting">
+      <webidl>                     attribute boolean setting;</webidl>
+      <Type type="boolean"/>
     </Attribute>
   </Interface>
-  <Interface name="SecurityAlert" id="::SecurityAlert">
-    <webidl>[NoInterfaceObject]
-interface SecurityAlert : <ref>VehiclePropertyType</ref>  { 
+</Module>
+<Module name="MediaServer" id="::MediaServer">
+  <webidl>  module MediaServer {
+  [NoInterfaceObject] interface MediaServerManagerObject {
+                readonly attribute <ref>MediaServerManager</ref> mediaserver;
+};
+<ref>Tizen</ref> implements <ref>MediaServerManagerObject</ref>;
+    
+[NoInterfaceObject] interface MediaServerManager  { 
+            void scanNetwork(<ref>MediaServerFoundServerCallback</ref> successCallback, optional <ref>MediaServerErrorCallback</ref> errorCallback);
+};    
+
+[NoInterfaceObject] interface MediaServer {
+            readonly attribute DOMString id;
+            readonly attribute DOMString friendlyName;
+            readonly attribute object root;
+                                            
+            void browse(DOMString containerId, DOMString sortMode, unsigned long count, unsigned long offset, <ref>MediaServerBrowseFindCallback</ref> successCallback, optional <ref>MediaServerErrorCallback</ref> errorCallback);
+                void find(DOMString containerId, DOMString searchFilter, DOMString sortMode, unsigned long count, unsigned long offset, <ref>MediaServerBrowseFindCallback</ref> successCallback, optional <ref>MediaServerErrorCallback</ref> errorCallback);
+};
+            
+[NoInterfaceObject] interface MediaServerError {
+             const unsigned short GENERIC = 1;
+             attribute unsigned short code;
+                 attribute DOMString message;
+};
+
+[Callback=FunctionOnly, NoInterfaceObject] interface MediaServerFoundServerCallback {
+            void onsuccess(<ref>MediaServer</ref> value);
+};
 
-         attribute boolean securityAlert;
-};</webidl>
-    <ExtendedAttributeList>
-      <ExtendedAttribute name="NoInterfaceObject">
-        <webidl>NoInterfaceObject</webidl>
-      </ExtendedAttribute>
-    </ExtendedAttributeList>
-    <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
-    </InterfaceInheritance>
-    <Attribute name="securityAlert" id="::SecurityAlert::securityAlert">
-      <webidl>         attribute boolean securityAlert;</webidl>
-      <descriptive>
-         <description>
-          <p>
-SecurityAlert
-          </p>
-         </description>
-          <brief>
- MUST return    
-          </brief>
-      </descriptive>
-      <Type type="boolean"/>
-    </Attribute>
-  </Interface>
-  <Interface name="ParkingBrake" id="::ParkingBrake">
-    <webidl>[NoInterfaceObject]
-interface ParkingBrake : <ref>VehiclePropertyType</ref>  { 
+[Callback=FunctionOnly, NoInterfaceObject] interface MediaServerBrowseFindCallback {
+    void onsuccess(sequence&lt; object > value);
+};
 
-         attribute boolean parkingBrake;
+[Callback=FunctionOnly, NoInterfaceObject] interface MediaServerErrorCallback {
+    void onfailure(<ref>MediaServerError</ref> error);
+};</webidl>
+  <Interface name="MediaServerManagerObject" id="::MediaServerManagerObject">
+    <webidl>[NoInterfaceObject] interface MediaServerManagerObject {
+                readonly attribute <ref>MediaServerManager</ref> mediaserver;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
         <webidl>NoInterfaceObject</webidl>
       </ExtendedAttribute>
     </ExtendedAttributeList>
-    <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
-    </InterfaceInheritance>
-    <Attribute name="parkingBrake" id="::ParkingBrake::parkingBrake">
-      <webidl>         attribute boolean parkingBrake;</webidl>
-      <descriptive>
-         <description>
-          <p>
-ParkingBrake
-must return status of parking brake:  Engaged = true, Disengaged = false.    
-          </p>
-         </description>
-      </descriptive>
-      <Type type="boolean"/>
+    <Attribute readonly="readonly" name="mediaserver" id="::MediaServerManagerObject::mediaserver">
+      <webidl>                readonly attribute <ref>MediaServerManager</ref> mediaserver;</webidl>
+      <Type name="MediaServerManager"/>
     </Attribute>
   </Interface>
-  <Interface name="ParkingLight" id="::ParkingLight">
-    <webidl>[NoInterfaceObject]
-interface ParkingLight : <ref>VehiclePropertyType</ref>  { 
-
-         attribute boolean parkingLight;
+  <Implements name1="Tizen" name2="MediaServerManagerObject">
+    <webidl><ref>Tizen</ref> implements <ref>MediaServerManagerObject</ref>;</webidl>
+  </Implements>
+  <Interface name="MediaServerManager" id="::MediaServerManager">
+    <webidl>[NoInterfaceObject] interface MediaServerManager  { 
+            void scanNetwork(<ref>MediaServerFoundServerCallback</ref> successCallback, optional <ref>MediaServerErrorCallback</ref> errorCallback);
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
         <webidl>NoInterfaceObject</webidl>
       </ExtendedAttribute>
     </ExtendedAttributeList>
-    <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
-    </InterfaceInheritance>
-    <Attribute name="parkingLight" id="::ParkingLight::parkingLight">
-      <webidl>         attribute boolean parkingLight;</webidl>
-      <descriptive>
-         <description>
-          <p>
-ParkingLight
-must return status of parking light:  Engaged = true, Disengaged = false.    
-          </p>
-         </description>
-      </descriptive>
-      <Type type="boolean"/>
-    </Attribute>
+    <Operation name="scanNetwork" id="::MediaServerManager::scanNetwork">
+      <webidl>            void scanNetwork(<ref>MediaServerFoundServerCallback</ref> successCallback, optional <ref>MediaServerErrorCallback</ref> errorCallback);</webidl>
+      <Type type="void"/>
+      <ArgumentList>
+        <Argument name="successCallback">
+          <Type name="MediaServerFoundServerCallback"/>
+        </Argument>
+        <Argument optional="optional" name="errorCallback">
+          <Type name="MediaServerErrorCallback"/>
+        </Argument>
+      </ArgumentList>
+    </Operation>
   </Interface>
-  <Interface name="HazardLight" id="::HazardLight">
-    <webidl>[NoInterfaceObject]
-interface HazardLight : <ref>VehiclePropertyType</ref>  { 
-
-         attribute boolean hazardLight;
+  <Interface name="MediaServer" id="::MediaServer">
+    <webidl>[NoInterfaceObject] interface MediaServer {
+            readonly attribute DOMString id;
+            readonly attribute DOMString friendlyName;
+            readonly attribute object root;
+                                            
+            void browse(DOMString containerId, DOMString sortMode, unsigned long count, unsigned long offset, <ref>MediaServerBrowseFindCallback</ref> successCallback, optional <ref>MediaServerErrorCallback</ref> errorCallback);
+                void find(DOMString containerId, DOMString searchFilter, DOMString sortMode, unsigned long count, unsigned long offset, <ref>MediaServerBrowseFindCallback</ref> successCallback, optional <ref>MediaServerErrorCallback</ref> errorCallback);
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
         <webidl>NoInterfaceObject</webidl>
       </ExtendedAttribute>
     </ExtendedAttributeList>
-    <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
-    </InterfaceInheritance>
-    <Attribute name="hazardLight" id="::HazardLight::hazardLight">
-      <webidl>         attribute boolean hazardLight;</webidl>
-      <descriptive>
-         <description>
-          <p>
-HazardLight
-must return status of hazard light:  Engaged = true, Disengaged = false.    
-          </p>
-         </description>
-      </descriptive>
-      <Type type="boolean"/>
+    <Attribute readonly="readonly" name="id" id="::MediaServer::id">
+      <webidl>            readonly attribute DOMString id;</webidl>
+      <Type type="DOMString"/>
     </Attribute>
+    <Attribute readonly="readonly" name="friendlyName" id="::MediaServer::friendlyName">
+      <webidl>            readonly attribute DOMString friendlyName;</webidl>
+      <Type type="DOMString"/>
+    </Attribute>
+    <Attribute readonly="readonly" name="root" id="::MediaServer::root">
+      <webidl>            readonly attribute object root;</webidl>
+      <Type type="object"/>
+    </Attribute>
+    <Operation name="browse" id="::MediaServer::browse">
+      <webidl>            void browse(DOMString containerId, DOMString sortMode, unsigned long count, unsigned long offset, <ref>MediaServerBrowseFindCallback</ref> successCallback, optional <ref>MediaServerErrorCallback</ref> errorCallback);</webidl>
+      <Type type="void"/>
+      <ArgumentList>
+        <Argument name="containerId">
+          <Type type="DOMString"/>
+        </Argument>
+        <Argument name="sortMode">
+          <Type type="DOMString"/>
+        </Argument>
+        <Argument name="count">
+          <Type type="unsigned long"/>
+        </Argument>
+        <Argument name="offset">
+          <Type type="unsigned long"/>
+        </Argument>
+        <Argument name="successCallback">
+          <Type name="MediaServerBrowseFindCallback"/>
+        </Argument>
+        <Argument optional="optional" name="errorCallback">
+          <Type name="MediaServerErrorCallback"/>
+        </Argument>
+      </ArgumentList>
+    </Operation>
+    <Operation name="find" id="::MediaServer::find">
+      <webidl>                void find(DOMString containerId, DOMString searchFilter, DOMString sortMode, unsigned long count, unsigned long offset, <ref>MediaServerBrowseFindCallback</ref> successCallback, optional <ref>MediaServerErrorCallback</ref> errorCallback);</webidl>
+      <Type type="void"/>
+      <ArgumentList>
+        <Argument name="containerId">
+          <Type type="DOMString"/>
+        </Argument>
+        <Argument name="searchFilter">
+          <Type type="DOMString"/>
+        </Argument>
+        <Argument name="sortMode">
+          <Type type="DOMString"/>
+        </Argument>
+        <Argument name="count">
+          <Type type="unsigned long"/>
+        </Argument>
+        <Argument name="offset">
+          <Type type="unsigned long"/>
+        </Argument>
+        <Argument name="successCallback">
+          <Type name="MediaServerBrowseFindCallback"/>
+        </Argument>
+        <Argument optional="optional" name="errorCallback">
+          <Type name="MediaServerErrorCallback"/>
+        </Argument>
+      </ArgumentList>
+    </Operation>
   </Interface>
-  <Interface name="AntilockBrakingSystem" id="::AntilockBrakingSystem">
-    <webidl>[NoInterfaceObject]
-interface AntilockBrakingSystem : <ref>VehiclePropertyType</ref>  { 
-
-         attribute boolean antilockBrakingSystem;
+  <Interface name="MediaServerError" id="::MediaServerError">
+    <webidl>[NoInterfaceObject] interface MediaServerError {
+             const unsigned short GENERIC = 1;
+             attribute unsigned short code;
+                 attribute DOMString message;
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
         <webidl>NoInterfaceObject</webidl>
       </ExtendedAttribute>
     </ExtendedAttributeList>
-    <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
-    </InterfaceInheritance>
-    <Attribute name="antilockBrakingSystem" id="::AntilockBrakingSystem::antilockBrakingSystem">
-      <webidl>         attribute boolean antilockBrakingSystem;</webidl>
-      <descriptive>
-         <description>
-          <p>
-AntilockBrakingSystem
-          </p>
-         </description>
-          <brief>
- MUST return whether Antilock Braking System is Idle (false) or Engaged (true)    
-          </brief>
-      </descriptive>
-      <Type type="boolean"/>
+    <Const name="GENERIC" value="1" id="::MediaServerError::GENERIC">
+      <webidl>             const unsigned short GENERIC = 1;</webidl>
+      <Type type="unsigned short"/>
+    </Const>
+    <Attribute name="code" id="::MediaServerError::code">
+      <webidl>             attribute unsigned short code;</webidl>
+      <Type type="unsigned short"/>
+    </Attribute>
+    <Attribute name="message" id="::MediaServerError::message">
+      <webidl>                 attribute DOMString message;</webidl>
+      <Type type="DOMString"/>
     </Attribute>
   </Interface>
-  <Interface name="TractionControlSystem" id="::TractionControlSystem">
-    <webidl>[NoInterfaceObject]
-interface TractionControlSystem : <ref>VehiclePropertyType</ref>  { 
-
-         attribute boolean tractionControlSystem;
+  <Interface name="MediaServerFoundServerCallback" id="::MediaServerFoundServerCallback">
+    <webidl>[Callback=FunctionOnly, NoInterfaceObject] interface MediaServerFoundServerCallback {
+            void onsuccess(<ref>MediaServer</ref> value);
 };</webidl>
     <ExtendedAttributeList>
+      <ExtendedAttribute name="Callback" value="FunctionOnly">
+        <webidl>Callback</webidl>
+      </ExtendedAttribute>
       <ExtendedAttribute name="NoInterfaceObject">
-        <webidl>NoInterfaceObject</webidl>
+        <webidl> NoInterfaceObject</webidl>
       </ExtendedAttribute>
     </ExtendedAttributeList>
-    <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
-    </InterfaceInheritance>
-    <Attribute name="tractionControlSystem" id="::TractionControlSystem::tractionControlSystem">
-      <webidl>         attribute boolean tractionControlSystem;</webidl>
-      <descriptive>
-         <description>
-          <p>
-TractionControlSystem
-          </p>
-         </description>
-          <brief>
- MUST return whether Traction Control System is Off (false) or On (true)    
-          </brief>
-      </descriptive>
-      <Type type="boolean"/>
-    </Attribute>
+    <Operation name="onsuccess" id="::MediaServerFoundServerCallback::onsuccess">
+      <webidl>            void onsuccess(<ref>MediaServer</ref> value);</webidl>
+      <Type type="void"/>
+      <ArgumentList>
+        <Argument name="value">
+          <Type name="MediaServer"/>
+        </Argument>
+      </ArgumentList>
+    </Operation>
   </Interface>
-  <Interface name="VehicleTopSpeedLimit" id="::VehicleTopSpeedLimit">
-    <webidl>[NoInterfaceObject]
-interface VehicleTopSpeedLimit : <ref>VehiclePropertyType</ref>  { 
-
-         attribute unsigned short vehicleTopSpeedLimit;
+  <Interface name="MediaServerBrowseFindCallback" id="::MediaServerBrowseFindCallback">
+    <webidl>[Callback=FunctionOnly, NoInterfaceObject] interface MediaServerBrowseFindCallback {
+    void onsuccess(sequence&lt; object > value);
 };</webidl>
     <ExtendedAttributeList>
+      <ExtendedAttribute name="Callback" value="FunctionOnly">
+        <webidl>Callback</webidl>
+      </ExtendedAttribute>
       <ExtendedAttribute name="NoInterfaceObject">
-        <webidl>NoInterfaceObject</webidl>
+        <webidl> NoInterfaceObject</webidl>
       </ExtendedAttribute>
     </ExtendedAttributeList>
-    <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
-    </InterfaceInheritance>
-    <Attribute name="vehicleTopSpeedLimit" id="::VehicleTopSpeedLimit::vehicleTopSpeedLimit">
-      <webidl>         attribute unsigned short vehicleTopSpeedLimit;</webidl>
-      <descriptive>
-         <description>
-          <p>
-VehicleTopSpeedLimit
-          </p>
-         </description>
-          <brief>
- MUST returns top rated speed in km/h. 0 = no limit    
-          </brief>
-      </descriptive>
-      <Type type="unsigned short"/>
-    </Attribute>
+    <Operation name="onsuccess" id="::MediaServerBrowseFindCallback::onsuccess">
+      <webidl>    void onsuccess(sequence&lt; object > value);</webidl>
+      <Type type="void"/>
+      <ArgumentList>
+        <Argument name="value">
+          <Type type="sequence">
+            <Type type="object"/>
+          </Type>
+        </Argument>
+      </ArgumentList>
+    </Operation>
   </Interface>
-  <Interface name="AirbagStatus" id="::AirbagStatus">
-    <webidl>[NoInterfaceObject]
-interface AirbagStatus : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short AIRBAGLOCATION_DRIVER = 0;    
-        const unsigned short AIRBAGLOCATION_PASSENGER= 1;    
-        const unsigned short AIRBAGLOCATION_LEFTSIDE = 2;    
-        const unsigned short AIRBAGLOCATION_RIGHTSIDE = 3;    
-        const unsigned short AIRBAGSTATUS_INACTIVE = 0;    
-        const unsigned short AIRBAGSTATUS_ACTIVE = 1;    
-        const unsigned short AIRBAGSTATUS_DEPLOYED = 2;    
-
-         attribute object airbagStatus;
+  <Interface name="MediaServerErrorCallback" id="::MediaServerErrorCallback">
+    <webidl>[Callback=FunctionOnly, NoInterfaceObject] interface MediaServerErrorCallback {
+    void onfailure(<ref>MediaServerError</ref> error);
 };</webidl>
     <ExtendedAttributeList>
+      <ExtendedAttribute name="Callback" value="FunctionOnly">
+        <webidl>Callback</webidl>
+      </ExtendedAttribute>
       <ExtendedAttribute name="NoInterfaceObject">
-        <webidl>NoInterfaceObject</webidl>
+        <webidl> NoInterfaceObject</webidl>
       </ExtendedAttribute>
     </ExtendedAttributeList>
-    <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
-    </InterfaceInheritance>
-    <Const name="AIRBAGLOCATION_DRIVER" value="0" id="::AirbagStatus::AIRBAGLOCATION_DRIVER">
-      <webidl>        const unsigned short AIRBAGLOCATION_DRIVER = 0;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="AIRBAGLOCATION_PASSENGER" value="1" id="::AirbagStatus::AIRBAGLOCATION_PASSENGER">
-      <webidl>        const unsigned short AIRBAGLOCATION_PASSENGER= 1;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="AIRBAGLOCATION_LEFTSIDE" value="2" id="::AirbagStatus::AIRBAGLOCATION_LEFTSIDE">
-      <webidl>        const unsigned short AIRBAGLOCATION_LEFTSIDE = 2;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="AIRBAGLOCATION_RIGHTSIDE" value="3" id="::AirbagStatus::AIRBAGLOCATION_RIGHTSIDE">
-      <webidl>        const unsigned short AIRBAGLOCATION_RIGHTSIDE = 3;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="AIRBAGSTATUS_INACTIVE" value="0" id="::AirbagStatus::AIRBAGSTATUS_INACTIVE">
-      <webidl>        const unsigned short AIRBAGSTATUS_INACTIVE = 0;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="AIRBAGSTATUS_ACTIVE" value="1" id="::AirbagStatus::AIRBAGSTATUS_ACTIVE">
-      <webidl>        const unsigned short AIRBAGSTATUS_ACTIVE = 1;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="AIRBAGSTATUS_DEPLOYED" value="2" id="::AirbagStatus::AIRBAGSTATUS_DEPLOYED">
-      <webidl>        const unsigned short AIRBAGSTATUS_DEPLOYED = 2;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Attribute name="airbagStatus" id="::AirbagStatus::airbagStatus">
-      <webidl>         attribute object airbagStatus;</webidl>
-      <descriptive>
-         <description>
-          <p>
-AirbagStatus
-          </p>
-         </description>
-          <brief>
- MUST returns a dictionary of Airbag (byte) and Status (byte) (see 
-          </brief>
-      </descriptive>
-      <Type type="object"/>
-    </Attribute>
+    <Operation name="onfailure" id="::MediaServerErrorCallback::onfailure">
+      <webidl>    void onfailure(<ref>MediaServerError</ref> error);</webidl>
+      <Type type="void"/>
+      <ArgumentList>
+        <Argument name="error">
+          <Type name="MediaServerError"/>
+        </Argument>
+      </ArgumentList>
+    </Operation>
   </Interface>
-  <Interface name="DoorStatus" id="::DoorStatus">
+</Module>
+<Module name="Locale" id="::Locale">
+  <webidl>  module Locale {
+  [NoInterfaceObject]
+interface LocaleManagerObject {
+    readonly attribute <ref>Locale</ref> locale;
+};
+
+<ref>Tizen</ref> implements <ref>LocaleManagerObject</ref>;
+
+callback LocaleChangedCallback = void (DOMString newLocale);
+
+
+[NoInterfaceObject]
+interface Locale  { 
+
+        void getLocale();
+        
+         void setLocale(DOMString newLocale);
+         
+         void localeChanged(<ref>LocaleChangedCallback</ref> cb);
+
+};</webidl>
+  <Interface name="LocaleManagerObject" id="::LocaleManagerObject">
     <webidl>[NoInterfaceObject]
-interface DoorStatus : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short DOORLOCATION_DRIVER= 0;    
-        const unsigned short DOORLOCATION_PASSENGER = 1;    
-        const unsigned short DOORLOCATION_LEFTREAR = 2;    
-        const unsigned short DOORLOCATION_RIGHTREAR = 3;    
-        const unsigned short DOORLOCATION_TRUNK = 4;    
-        const unsigned short DOORLOCATION_FUELCAP = 5;    
-        const unsigned short DOORLOCATION_HOOD = 6;    
-        const unsigned short DOORSTATUS_CLOSED = 0;    
-        const unsigned short DOORSTATUS_OPEN = 1;    
-        const unsigned short DOORSTATUS_AJAR = 2;    
-
-         attribute object doorStatus;
-
-         attribute object doorLockStatus;
-
-         attribute boolean childLockStatus;
+interface LocaleManagerObject {
+    readonly attribute <ref>Locale</ref> locale;
 };</webidl>
+    <descriptive>
+       <description>
+        <p>
+Details. 
+        </p>
+        <p>
+def-api-feature http://tizen.org/api/vehicle 
+brief Allows access to the vehicle API
+        </p>
+       </description>
+    </descriptive>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
         <webidl>NoInterfaceObject</webidl>
       </ExtendedAttribute>
     </ExtendedAttributeList>
-    <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
-    </InterfaceInheritance>
-    <Const name="DOORLOCATION_DRIVER" value="0" id="::DoorStatus::DOORLOCATION_DRIVER">
-      <webidl>        const unsigned short DOORLOCATION_DRIVER= 0;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="DOORLOCATION_PASSENGER" value="1" id="::DoorStatus::DOORLOCATION_PASSENGER">
-      <webidl>        const unsigned short DOORLOCATION_PASSENGER = 1;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="DOORLOCATION_LEFTREAR" value="2" id="::DoorStatus::DOORLOCATION_LEFTREAR">
-      <webidl>        const unsigned short DOORLOCATION_LEFTREAR = 2;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="DOORLOCATION_RIGHTREAR" value="3" id="::DoorStatus::DOORLOCATION_RIGHTREAR">
-      <webidl>        const unsigned short DOORLOCATION_RIGHTREAR = 3;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="DOORLOCATION_TRUNK" value="4" id="::DoorStatus::DOORLOCATION_TRUNK">
-      <webidl>        const unsigned short DOORLOCATION_TRUNK = 4;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="DOORLOCATION_FUELCAP" value="5" id="::DoorStatus::DOORLOCATION_FUELCAP">
-      <webidl>        const unsigned short DOORLOCATION_FUELCAP = 5;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="DOORLOCATION_HOOD" value="6" id="::DoorStatus::DOORLOCATION_HOOD">
-      <webidl>        const unsigned short DOORLOCATION_HOOD = 6;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="DOORSTATUS_CLOSED" value="0" id="::DoorStatus::DOORSTATUS_CLOSED">
-      <webidl>        const unsigned short DOORSTATUS_CLOSED = 0;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="DOORSTATUS_OPEN" value="1" id="::DoorStatus::DOORSTATUS_OPEN">
-      <webidl>        const unsigned short DOORSTATUS_OPEN = 1;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="DOORSTATUS_AJAR" value="2" id="::DoorStatus::DOORSTATUS_AJAR">
-      <webidl>        const unsigned short DOORSTATUS_AJAR = 2;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Attribute name="doorStatus" id="::DoorStatus::doorStatus">
-      <webidl>         attribute object doorStatus;</webidl>
-      <descriptive>
-         <description>
-          <p>
-DoorStatus
-          </p>
-         </description>
-          <brief>
- MUST returns dictionary of Door (byte) and Status (byte).  See 
-          </brief>
-      </descriptive>
-      <Type type="object"/>
-    </Attribute>
-    <Attribute name="doorLockStatus" id="::DoorStatus::doorLockStatus">
-      <webidl>         attribute object doorLockStatus;</webidl>
-      <descriptive>
-         <description>
-          <p>
-DoorLockStatus
-          </p>
-         </description>
-          <brief>
- MUST returns dictionary of Door (byte) and Status (bool locked = true, unlocked = false).  See 
-          </brief>
-      </descriptive>
-      <Type type="object"/>
-    </Attribute>
-    <Attribute name="childLockStatus" id="::DoorStatus::childLockStatus">
-      <webidl>         attribute boolean childLockStatus;</webidl>
-      <descriptive>
-         <description>
-          <p>
-ChildLockStatus
-          </p>
-         </description>
-          <brief>
- MUST returns Child lock status of rear doors.  active = true, inactive = false.    
-Setting this to 'true' will prevent the rear doors from being opened    
-from the inside.    
-          </brief>
-      </descriptive>
-      <Type type="boolean"/>
+    <Attribute readonly="readonly" name="locale" id="::LocaleManagerObject::locale">
+      <webidl>    readonly attribute <ref>Locale</ref> locale;</webidl>
+      <Type name="Locale"/>
     </Attribute>
   </Interface>
-  <Interface name="SeatBeltStatus" id="::SeatBeltStatus">
+  <Implements name1="Tizen" name2="LocaleManagerObject">
+    <webidl><ref>Tizen</ref> implements <ref>LocaleManagerObject</ref>;</webidl>
+  </Implements>
+  <Callback name="LocaleChangedCallback" id="::LocaleChangedCallback">
+    <webidl>callback LocaleChangedCallback = void (DOMString newLocale);</webidl>
+    <Type type="void"/>
+    <ArgumentList>
+      <Argument name="newLocale">
+        <Type type="DOMString"/>
+      </Argument>
+    </ArgumentList>
+  </Callback>
+  <Interface name="Locale" id="::Locale">
     <webidl>[NoInterfaceObject]
-interface SeatBeltStatus : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short SEATBELTLOCATION_DRIVER= 0;    
-        const unsigned short SEATBELTLOCATION_MIDDLEFRONT = 1;    
-        const unsigned short SEATBELTLOCATION_PASSENGER = 2;    
-        const unsigned short SEATBELTLOCATION_LEFTREAR = 3;    
-        const unsigned short SEATBELTLOCATION_MIDDLEREAR = 4;    
-        const unsigned short SEATBELTLOCATION_RIGHTREAR = 5;    
-
-         attribute object seatBeltStatus;
+interface Locale  { 
+
+        void getLocale();
+        
+         void setLocale(DOMString newLocale);
+         
+         void localeChanged(<ref>LocaleChangedCallback</ref> cb);
+
 };</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
         <webidl>NoInterfaceObject</webidl>
       </ExtendedAttribute>
     </ExtendedAttributeList>
-    <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
-    </InterfaceInheritance>
-    <Const name="SEATBELTLOCATION_DRIVER" value="0" id="::SeatBeltStatus::SEATBELTLOCATION_DRIVER">
-      <webidl>        const unsigned short SEATBELTLOCATION_DRIVER= 0;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="SEATBELTLOCATION_MIDDLEFRONT" value="1" id="::SeatBeltStatus::SEATBELTLOCATION_MIDDLEFRONT">
-      <webidl>        const unsigned short SEATBELTLOCATION_MIDDLEFRONT = 1;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="SEATBELTLOCATION_PASSENGER" value="2" id="::SeatBeltStatus::SEATBELTLOCATION_PASSENGER">
-      <webidl>        const unsigned short SEATBELTLOCATION_PASSENGER = 2;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="SEATBELTLOCATION_LEFTREAR" value="3" id="::SeatBeltStatus::SEATBELTLOCATION_LEFTREAR">
-      <webidl>        const unsigned short SEATBELTLOCATION_LEFTREAR = 3;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="SEATBELTLOCATION_MIDDLEREAR" value="4" id="::SeatBeltStatus::SEATBELTLOCATION_MIDDLEREAR">
-      <webidl>        const unsigned short SEATBELTLOCATION_MIDDLEREAR = 4;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="SEATBELTLOCATION_RIGHTREAR" value="5" id="::SeatBeltStatus::SEATBELTLOCATION_RIGHTREAR">
-      <webidl>        const unsigned short SEATBELTLOCATION_RIGHTREAR = 5;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Attribute name="seatBeltStatus" id="::SeatBeltStatus::seatBeltStatus">
-      <webidl>         attribute object seatBeltStatus;</webidl>
+    <Operation name="getLocale" id="::Locale::getLocale">
+      <webidl>        void getLocale();</webidl>
       <descriptive>
          <description>
           <p>
-SeatBeltStatus
+brief gets the current locale
+returns current locale in ISO 639-2 format (ie en_US for english US)
           </p>
          </description>
-          <brief>
- MUST returns dictionary of Seat Belt (byte, see SEATBELTLOCATION) and Status (bool: Fasten = true, Unfastened = false)    
-          </brief>
       </descriptive>
-      <Type type="object"/>
-    </Attribute>
-  </Interface>
-  <Interface name="OccupantStatus" id="::OccupantStatus">
-    <webidl>[NoInterfaceObject]
-interface OccupantStatus : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short OCCUPANTLOCATION_DRIVER = 0;    
-        const unsigned short OCCUPANTLOCATION_FRONTMIDDLE = 1;    
-        const unsigned short OCCUPANTLOCATION_PASSENGER= 2;    
-        const unsigned short OCCUPANTLOCATION_LEFTREAR = 3;    
-        const unsigned short OCCUPANTLOCATION_MIDDLEREAR = 4;    
-        const unsigned short OCCUPANTLOCATION_RIGHTREAR = 5;    
-        const unsigned short OCCUPANTSTATUS_VACANT = 0;    
-        const unsigned short OCCUPANTSTATUS_CHILD = 1;    
-        const unsigned short OCCUPANTSTATUS_ADULT = 2;    
-
-         attribute object occupantStatus;
-};</webidl>
-    <ExtendedAttributeList>
-      <ExtendedAttribute name="NoInterfaceObject">
-        <webidl>NoInterfaceObject</webidl>
-      </ExtendedAttribute>
-    </ExtendedAttributeList>
-    <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
-    </InterfaceInheritance>
-    <Const name="OCCUPANTLOCATION_DRIVER" value="0" id="::OccupantStatus::OCCUPANTLOCATION_DRIVER">
-      <webidl>        const unsigned short OCCUPANTLOCATION_DRIVER = 0;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="OCCUPANTLOCATION_FRONTMIDDLE" value="1" id="::OccupantStatus::OCCUPANTLOCATION_FRONTMIDDLE">
-      <webidl>        const unsigned short OCCUPANTLOCATION_FRONTMIDDLE = 1;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="OCCUPANTLOCATION_PASSENGER" value="2" id="::OccupantStatus::OCCUPANTLOCATION_PASSENGER">
-      <webidl>        const unsigned short OCCUPANTLOCATION_PASSENGER= 2;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="OCCUPANTLOCATION_LEFTREAR" value="3" id="::OccupantStatus::OCCUPANTLOCATION_LEFTREAR">
-      <webidl>        const unsigned short OCCUPANTLOCATION_LEFTREAR = 3;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="OCCUPANTLOCATION_MIDDLEREAR" value="4" id="::OccupantStatus::OCCUPANTLOCATION_MIDDLEREAR">
-      <webidl>        const unsigned short OCCUPANTLOCATION_MIDDLEREAR = 4;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="OCCUPANTLOCATION_RIGHTREAR" value="5" id="::OccupantStatus::OCCUPANTLOCATION_RIGHTREAR">
-      <webidl>        const unsigned short OCCUPANTLOCATION_RIGHTREAR = 5;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="OCCUPANTSTATUS_VACANT" value="0" id="::OccupantStatus::OCCUPANTSTATUS_VACANT">
-      <webidl>        const unsigned short OCCUPANTSTATUS_VACANT = 0;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="OCCUPANTSTATUS_CHILD" value="1" id="::OccupantStatus::OCCUPANTSTATUS_CHILD">
-      <webidl>        const unsigned short OCCUPANTSTATUS_CHILD = 1;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="OCCUPANTSTATUS_ADULT" value="2" id="::OccupantStatus::OCCUPANTSTATUS_ADULT">
-      <webidl>        const unsigned short OCCUPANTSTATUS_ADULT = 2;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Attribute name="occupantStatus" id="::OccupantStatus::occupantStatus">
-      <webidl>         attribute object occupantStatus;</webidl>
+      <Type type="void"/>
+      <ArgumentList/>
+    </Operation>
+    <Operation name="setLocale" id="::Locale::setLocale">
+      <webidl>         void setLocale(DOMString newLocale);</webidl>
       <descriptive>
          <description>
           <p>
-OccupantStatus
+brief sets the system locale
+param newLocale locale to set in ISO 639-2 format
           </p>
          </description>
-          <brief>
- MUST returns dictionary of Occupant (byte see OCCUPANTLOCATION) and Status (byte, see 
-          </brief>
       </descriptive>
-      <Type type="object"/>
-    </Attribute>
-  </Interface>
-  <Interface name="ObstacleDistance" id="::ObstacleDistance">
-    <webidl>[NoInterfaceObject]
-interface ObstacleDistance : <ref>VehiclePropertyType</ref>  { 
-        const unsigned short DISTANCESENSORLOCATION_LEFTFRONT = 0;    
-        const unsigned short DISTANCESENSORLOCATION_RIGHTFRONT = 1;    
-        const unsigned short DISTANCESENSORLOCATION_LEFTREAR = 2;    
-        const unsigned short DISTANCESENSORLOCATION_RIGHTREAR = 3;    
-        const unsigned short DISTANCESENSORLOCATION_LEFTBLINDSPOT = 4;    
-        const unsigned short DISTANCESENSORLOCATION_RIGHTBLINDSPOT = 5;    
-
-         attribute object obstacleDistance;
-};</webidl>
-    <ExtendedAttributeList>
-      <ExtendedAttribute name="NoInterfaceObject">
-        <webidl>NoInterfaceObject</webidl>
-      </ExtendedAttribute>
-    </ExtendedAttributeList>
-    <InterfaceInheritance>
-      <Name name="VehiclePropertyType"/>
-    </InterfaceInheritance>
-    <Const name="DISTANCESENSORLOCATION_LEFTFRONT" value="0" id="::ObstacleDistance::DISTANCESENSORLOCATION_LEFTFRONT">
-      <webidl>        const unsigned short DISTANCESENSORLOCATION_LEFTFRONT = 0;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="DISTANCESENSORLOCATION_RIGHTFRONT" value="1" id="::ObstacleDistance::DISTANCESENSORLOCATION_RIGHTFRONT">
-      <webidl>        const unsigned short DISTANCESENSORLOCATION_RIGHTFRONT = 1;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="DISTANCESENSORLOCATION_LEFTREAR" value="2" id="::ObstacleDistance::DISTANCESENSORLOCATION_LEFTREAR">
-      <webidl>        const unsigned short DISTANCESENSORLOCATION_LEFTREAR = 2;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="DISTANCESENSORLOCATION_RIGHTREAR" value="3" id="::ObstacleDistance::DISTANCESENSORLOCATION_RIGHTREAR">
-      <webidl>        const unsigned short DISTANCESENSORLOCATION_RIGHTREAR = 3;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="DISTANCESENSORLOCATION_LEFTBLINDSPOT" value="4" id="::ObstacleDistance::DISTANCESENSORLOCATION_LEFTBLINDSPOT">
-      <webidl>        const unsigned short DISTANCESENSORLOCATION_LEFTBLINDSPOT = 4;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Const name="DISTANCESENSORLOCATION_RIGHTBLINDSPOT" value="5" id="::ObstacleDistance::DISTANCESENSORLOCATION_RIGHTBLINDSPOT">
-      <webidl>        const unsigned short DISTANCESENSORLOCATION_RIGHTBLINDSPOT = 5;</webidl>
-      <Type type="unsigned short"/>
-    </Const>
-    <Attribute name="obstacleDistance" id="::ObstacleDistance::obstacleDistance">
-      <webidl>         attribute object obstacleDistance;</webidl>
+      <Type type="void"/>
+      <ArgumentList>
+        <Argument name="newLocale">
+          <Type type="DOMString"/>
+        </Argument>
+      </ArgumentList>
+    </Operation>
+    <Operation name="localeChanged" id="::Locale::localeChanged">
+      <webidl>         void localeChanged(<ref>LocaleChangedCallback</ref> cb);</webidl>
       <descriptive>
          <description>
           <p>
-ObstacleDistance
+brief subscribe to locale changes.
+param cb callback to be called when this even occurs.
           </p>
          </description>
-          <brief>
- MUST returns dictionary of Distance Sensor (byte, see DISTANCESENSORLOCATION) and distance (double) in m.    
-          </brief>
       </descriptive>
-      <Type type="object"/>
-    </Attribute>
+      <Type type="void"/>
+      <ArgumentList>
+        <Argument name="cb">
+          <Type name="LocaleChangedCallback"/>
+        </Argument>
+      </ArgumentList>
+    </Operation>
   </Interface>
 </Module>
 <Module name="Speech" id="::Speech">