# CID 1.0 and beyond
## Agenda
- How do we make decisions today ?
- Removing node Buffer dependency
- Renaming `.buffer` property to `.bytes`
- Do we even need `.buffer` / `.bytes` if `CID` is `ArrayBufferView` ?
- Deprecating properties requing codec tabes
- [`.codec`](https://github.com/multiformats/js-multiformats/blob/3e7fbad65eafb7774c5b1511466fd5b1e720d202/cid.js#L123-L125)
- [`.mulibaseName`](https://github.com/multiformats/js-multiformats/blob/3e7fbad65eafb7774c5b1511466fd5b1e720d202/cid.js#L127-L129)
- [`.prefix`](https://github.com/multiformats/js-multiformats/blob/3e7fbad65eafb7774c5b1511466fd5b1e720d202/cid.js#L131-L133)
- [`.toBaseEncodedString`](https://github.com/multiformats/js-multiformats/blob/3e7fbad65eafb7774c5b1511466fd5b1e720d202/cid.js#L153-L155)
- [Creating `code` in place of `codec`](https://github.com/multiformats/js-multiformats/blob/3e7fbad65eafb7774c5b1511466fd5b1e720d202/cid.js#L74)
- Replacing `.isCID` pattern with `.asCID`
- [Discussion thread](https://github.com/multiformats/js-cid/issues/111)
- [Changes landed is js-multiformats](https://github.com/multiformats/js-multiformats/pull/23)
- `CID` as `ArrayBufferView`
- [Proposed changes](https://github.com/multiformats/js-multiformats/pull/29)
- [`/` property for circular reference](https://github.com/multiformats/js-multiformats/issues/27)
- [Reducing CID constructor overload](https://github.com/multiformats/js-cid/issues/83#issuecomment-668748578)
## Notes
- Deprecation
- In js-multiformats we print warning when using `CID.isCID(x)` that will start throwing in next major release. Seems like an overal pattern worth adopting for easing transitions.
- From @mikeal in slack:
> we should only ever print the warning once
- Maybe not throw until we switch to js-mulitformats
- The reason we might want to have warning even if we never change js-cids is because ipfs.* will return CID instances so it's not up to them to switch.
- Can we provide an alternative to string table.
- Instead point to the migration guide.
- `toBaseEncodedString` - print warning.
- `toString` - print warning when encoding would be differnt.
- `prefix` - warn then remove.
- TODO: open issue in https://github.com/ipfs/js-ipfs-bitswap(?)
- warn on construction.
- Add `asCID` and migrate, but keep the `isCID`.
- In second phase print warning
- Check our assumbtions `.buffer`.
- Throw if offset is not 0