Refactor the way Entities are constructed

Description

Currently, _init_ of an entity does both constructing from user arguments and from parsed JSON dicts (the properties, annotations and local_state stuff). This is problematic because it causes a lot of extra if statements just to make sure parameter values do not overwrite the ones defined in properties, annotations, and local_state.

Also subclasses of Entity have to pass attribute-defining arguments specific to that subclass as kwargs to the base Entity._init_ instead of setting them in the overridden constructor. This feels counter-intuitive.

Environment

None

Assignee

Unassigned

Reporter

Ziming Dong

Labels

Validator

Ziming Dong

Development Area

None

Release Version History

None

Priority

Minor
Configure