Field Structure
A Field is the evolving situational state of a CPUX.
It accumulates reflected Intentions and Pulses.
{
"id": "Field_login_001",
"cpuxId": "CPUX_login",
"fis": ["I_reflect_username", "I_reflect_login_result"],
"fps": {
"username": {
"phrase": "username",
"tv": "Y",
"response": ["alice"]
},
"credentials valid": {
"phrase": "credentials valid",
"tv": "N",
"response": ["false"]
}
},
"pickupHistory": [
{
"seqNo": 1,
"icId": "IC_username",
"signalId": "S_username_reflected"
},
{
"seqNo": 2,
"icId": "IC_validate_login",
"signalId": "S_login_result"
}
]
}
FIS
FIS means Field Intention Set.
It records Intentions reflected into the Field:
"fis": ["I_reflect_username", "I_reflect_login_result"]
FPS
FPS means Field Pulse Set.
It records the current Pulse state by phrase:
"fps": {
"username": {
"phrase": "username",
"tv": "Y",
"response": ["alice"]
}
}
The current working rule is latest TV wins for the same Pulse phrase inside the Field.
Pickup History
Pickup history preserves ordered absorption:
"pickupHistory": [
{
"seqNo": 1,
"icId": "IC_username",
"signalId": "S_username_reflected"
}
]
This supports debugging, replay, and causality inspection.
Sample Anchor: Green Light Field
The Green Light sample Field can be small enough to inspect by eye:
{
"id": "Field_green_light_001",
"cpuxId": "CPUX_green_light",
"fis": ["I_reflect_movement_state"],
"fps": {
"current light": {
"phrase": "current light",
"tv": "Y",
"response": ["green"]
},
"movement allowed": {
"phrase": "movement allowed",
"tv": "Y",
"response": ["true"]
},
"current position": {
"phrase": "current position",
"tv": "Y",
"response": ["crossing"]
}
},
"pickupHistory": [
{
"seqNo": 1,
"icId": "IC_move_if_allowed",
"signalId": "S_movement_result_001"
}
]
}
The UI can render this as a moving object, but the Field itself is not UI state.
It is the represented situation after O_reflector has accepted a DN result.
Developer Rule
Do not treat the Field as a generic mutable store.
It is a represented situational state created through reflected Signals.