Object Structure
An Object reflects, persists, and releases Signals without hidden arbitrary computation.
There are two important Object roles inside an Intention Container:
- O_holder
- O_reflector
O_holder Structure
O_holder accumulates perception history.
{
"id": "OH_login",
"role": "holder",
"persistence": {
"stream": "login-accumulation",
"tier": "localCache"
},
"modePulse": "_perception_mode"
}
O_holder should not compute derived values. It accumulates and replays perceptions for the DN.
O_reflector Structure
O_reflector receives the DN result and reflects it outward.
{
"id": "OR_login",
"role": "reflector",
"designatedAbsorbedSignal": {
"intentionId": "I_login_result_internal",
"pulsePhrases": ["credentials valid", "login message"]
},
"reflectedSignal": {
"intentionId": "I_reflect_login_result"
},
"persistence": {
"stream": "login-reflection",
"tier": "localCache"
}
}
Optional RTM
A reflector may use a declarative Response Transformation Matrix when explicitly configured.
The important boundary is:
RTM should remain declarative and reflect-only. It should not become hidden arbitrary computation.
Example placeholder:
{
"rtm": [
{
"fromPhrase": "credentials valid",
"toPhrase": "login visible",
"copyResponse": true
}
]
}
Developer Rule
If an Object needs to calculate, infer, validate, or derive a new value, introduce a Design Node.
Objects preserve clarity by refusing to become hidden processors.