A CLIENT-FAITHFUL 'MJ: Entities' instance: the BASE generated class, constructed directly.
Deliberately NOT GetEntityObject: the mj test process is a HYBRID — the CLI bootstrap
registers the server entity subclasses, so the ClassFactory would resolve
MJEntityEntityServer even on the client transport. Its Save() override then runs FLS
snapshot reconciliation LOCALLY (writing every permission row one-by-one over the wire)
AND the save mutation makes MJAPI run the same reconciliation server-side — the two
collide on UQ_EntityFieldPermission_Field_Role. A real browser only ever has the base
class, so constructing it directly is what restores client fidelity here.
A CLIENT-FAITHFUL 'MJ: Entities' instance: the BASE generated class, constructed directly.
Deliberately NOT GetEntityObject: the
mj testprocess is a HYBRID — the CLI bootstrap registers the server entity subclasses, so the ClassFactory would resolve MJEntityEntityServer even on the client transport. Its Save() override then runs FLS snapshot reconciliation LOCALLY (writing every permission row one-by-one over the wire) AND the save mutation makes MJAPI run the same reconciliation server-side — the two collide on UQ_EntityFieldPermission_Field_Role. A real browser only ever has the base class, so constructing it directly is what restores client fidelity here.