# Migration: 1.20.0 to 1.21.0

No code changes in calls to the SDK. Consumers that import `effect` themselves
must move to the same Effect release candidate, because an `Effect` value built
by the SDK on `4.0.0-rc.115` does not typecheck against `Effect` types from
`4.0.0-beta.85`.

## 1. Upgrade

```sh
pnpm add @v-office/sdk-core@1.21.0 effect@4.0.0-rc.115
```

Skip the `effect` part if your project does not depend on `effect` directly.

## 2. Follow the release candidate renames in your own Effect code

Only needed where your project uses these APIs itself:

- `Schema.TaggedErrorClass` → `Schema.TaggedError`, `Schema.ErrorClass` → `Schema.Error`
- `SchemaTransformation.transformOrFail` → `SchemaTransformation.transformEffect`
- `Schedule.both` → `Schedule.max([...])`, `Schedule.either` → `Schedule.min([...])`
- `effect/unstable/cli` constructors are PascalCase: `Flag.string` → `Flag.String`,
  `Flag.file` → `Flag.File`, `Flag.integer` → `Flag.Int`, `Flag.choice` → `Flag.Literals`
- `FileSystem.Size` → `ByteSize.bytes`

Everything else the SDK returns (services, schemas, `CoreSDKError`) is used
exactly as before.
