Source:
Local role: Projected successor perceived state produced by evaluating one Action from one source Perception.
Big-picture role: Bridge object between first-order projection and later strategy construction: it is the state that child strategy nodes consume.
Inheritance:
- dataclass
Parameters and fields:
source_perception_id: strgenerating_action_id: strperception: Perception— deep copy of the source perception, markedepistemic_status="projected"on perceived spaces, memberships, relations, and perceived component linkschanges: list[ProjectedPerceptionChange]— sorted bychange_idon serializationmetadata: dict
Context keys written into perception.context:
projected_state_changes— map of action-id to state-change payloads fromaction.state_changesprojected_stock_deltas— map ofresource_idto cumulative quantity delta for stock resources (mode"stock"withquantity != 1.0); consume subtracts, produce adds, transfer subtracts from source
Methods:
to_dict() -> dictfrom_dict(data) -> ProjectedPerceptionState
Example:
tool = DefaultProjectionTool()
proj = tool.project_action(action, perception, resources=[resource])
if proj.projected_state:
pps = proj.projected_state
successor_perception = pps.perception # deep-copied, epistemic_status="projected"
for change in pps.changes:
print(change.change_type, change.subject_id, change.applied)
# Stock resource deltas written into context
deltas = pps.perception.context.get("projected_stock_deltas", {})
See also:
