sim_refine
Refine a model's parameter classes by editing what the model SAYS (tags on a place or transition, or assertedClasses), then re-derive. Returns a NEW model id (ids are content addresses, so the original stays reachable) plus a before/after class diff. tags can only split classes; assertedClasses declares a merge and gets re-verified and costed, never trusted blind. Read the sim://docs/classification resource once for why the two levers are not symmetric.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | model id to refine | |
| tags | No | JSON object of place OR transition id -> {key: value}, e.g. {"nurse_avail":{"refine.shift":"night"}}. Keys not prefixed refine. are stored as metadata and refine nothing. classify.go's colour refinement seeds from both places' and transitions' tags, so either kind of id works here. | |
| signer | No | optional {"type":"eth"|"ed25519","address":"..."} — signs the lineage claim so it is the refiner's word rather than the server's account of a session | |
| signature | No | optional hex signature over the CID of the signed claim; see modelstore.SignedClaim for the exact bytes. An unverifiable signature is refused, not stored with a flag. | |
| assertedClasses | No | JSON array, e.g. [{"id":"items","members":["item0","item1"],"note":"one stocking decision"}] |