Generic objects have different properties depending on what they represent. There are two kinds of properties:
Defined by the Qlik engine
These properties are validated by the engine, and some are also evaluated (rendered) and replaced in the Qlik Associative Engine output (the layout) by their calculated counterparts. In the Qlik Engine JSON API, you can set the properties of a generic object, either when you create the object or after you create the object, by using the SetProperties method or the ApplyPatches method. Fixed (or static) properties are the mandatory properties of a generic object. For example, qInfo and qExtendsId are fixed properties inside the GenericObjectProperties object. Dynamic properties are additional (optional) properties that can be added to generic objects, depending on the type of app object the generic object represents. Dynamic properties have types that are defined in the API and known to the engine.
The properties of the generic object determine what the engine evaluates. You set the properties in a definition object, and the engine evaluates (or renders) the calculated results in a layout object. To evaluate the properties of a generic object, you use the GetLayout method. For example, a qHyperCubeDef object contains definitions for dimensions and measures. The engine evaluates these properties and exposes them in the qHyperCube object, which contains the calculated results. Properties defined by the engine are prefixed by the letter 'q' in the JSON of API requests and responses.
User defined (also referred to as full dynamic)
These properties are persisted in the repository, but are not used or recognized by the engine. They can be any type you define. The engine includes them unchanged in the layout, so your code should use them for something. To prevent confusion, do not prefix user-defined properties by the letter 'q'.