satisfies operator matches some type, but also want to keep the most specific type of that expression for inference purposes. Branded types because TypeScript doesn't have nominal typing support. Learning TypeScript - Branded Types