# Rename assignGingerlyOptions to assignOptions

---

## Human Ask

I'd like to please replace:

```javascript
const [vm, propagator] = await roundabout({
    vm: this,
    assignGingerlyOptions: {
        withMethods: ['querySelector', 'appendChild'],
        aka: { q: 'querySelector' }
    },
    // ... actions, compacts, etc.
});
```

with

```javascript
const [vm, propagator] = await roundabout({
    vm: this,
    assignOptions: {
        withMethods: ['querySelector', 'appendChild'],
        aka: { q: 'querySelector' }
    },
    // ... actions, compacts, etc.
});
```

everywhere.  Do not worry about bckwards compatibility.

---

## Kiro's Response

Straightforward rename. Here's the scope:

| Location | Count | Notes |
|----------|-------|-------|
| `types/roundabout/types.d.ts` | 1 | Public type definition |
| `core/RoundaboutManager.ts` | 2 | Stores on VM as `__roundaboutAssignOptions` |
| `roundabout.ts` | 2 | Passes to assignGingerly/assignFrom |
| `roundaboutSync.ts` | 4 | Same pattern |
| `roundaboutFeature.ts` | 1 | Passes to assignGingerly |
| `processors/actions.ts` | 1 | Reads from VM |
| `processors/compacts.ts` | 1 | Reads from VM |
| `processors/handlers.ts` | 1 | Reads from VM |
| `processors/merges.ts` | 1 | Reads from VM |
| `tests/*.html` | 2 | Test configs |
| `README.md` | ~10 | Documentation |
| `legacy/froop/Concerns.md` | 1 | Legacy doc |

The internal storage key (`__roundaboutAssignGingerlyOptions`) should also be renamed to `__roundaboutAssignOptions` for consistency.

No concerns — this is a clean rename with no semantic change. Ready to proceed?

---

## Human Response I

Yes, please.

---

## Implementation Notes


I'll do this with a bulk find-and-replace across all the source files (excluding node_modules). The `.js` files will be regenerated by tsc, so I'll focus on `.ts`, `.html`, `.md`, and the type definition files:

Now rename the internal storage key `__roundaboutAssignGingerlyOptions` to `__roundaboutAssignOptions`:

The first replace already caught `__roundaboutAssignGingerlyOptions` since it contains `assignGingerlyOptions` as a substring. Let me verify:

The `.js` files still have the old name — they need to be regenerated by the TypeScript compiler. Let me build:

There's a type mismatch — the types file renamed `IAssignGingerlyOptions` to `IassignOptions` (unintended — the interface in assign-gingerly's types is still `IAssignGingerlyOptions`). Let me check what happened:

The regex replaced `assignGingerlyOptions` inside `IAssignGingerlyOptions` — turning it into `IassignOptions`. That's wrong — `IAssignGingerlyOptions` is an external interface name from assign-gingerly, not our config field. I need to revert that:

Now check if the same issue happened in the roundabout types file:

The comment and the type reference also got mangled. Let me fix:

Also check `types/do-merge/types.d.ts`:

Now let me also check the `.ts` source files for the same issue:

Good. Now rebuild:

The `merges.ts` error is pre-existing. The `roundabout.ts` error is new — let me check it:

The error is a type mismatch with `assignFrom` — the spread of `options.assignOptions` (which is `IAssignGingerlyOptions`) plus `protocols` doesn't match `AssignFromOptions`. This is a pre-existing type mismatch that just surfaced differently. Let me cast it:

Clean (only the pre-existing `merges.ts` error remains). Now let me verify the compiled JS files have the new name:

I notice the internal key became `__roundaboutassignOptions` (lowercase 'a' after 'roundabout') because the regex replaced `AssignGingerlyOptions` → `assignOptions` within `__roundaboutAssignGingerlyOptions`. It should be `__roundaboutAssignOptions` (capital A). Let me fix this in the `.ts` source files:

Clean build. Let me do one final verification:

Those remaining references are all to `IAssignGingerlyOptions` — the *interface name* from the assign-gingerly package, which should stay as-is. The config field name `assignGingerlyOptions` is fully gone from our code.

Done. The rename is complete:

- **Config field**: `assignGingerlyOptions` → `assignOptions` (in types, source, tests, README)
- **Internal storage key**: `__roundaboutAssignGingerlyOptions` → `__roundaboutAssignOptions`
- **External interface name**: `IAssignGingerlyOptions` left unchanged (it's assign-gingerly's type, not ours)