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. 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 GenericObjectProperties. 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 known to the engine.
The properties of the generic object determine what the engine evaluates. To evaluate the properties of a generic object, you can use the GetLayout method. For example, a qHyperCubeDef object (HyperCubeDef) contains definitions for dimensions and measures. The engine evaluates these properties and exposes them in the qHyperCube object (HyperCube), 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. The engine includes them unchanged in the layout, so your code should use them for something. It is good programming practice not to prefix user-defined properties by the letter 'q'.