satisfies in a config object, a year on

The operator checks a value against a type without widening it, which is exactly what a configuration object needs and nothing else does as well.

const routes = {
  home:  { path: '/',        auth: false },
  admin: { path: '/admin',   auth: true  },
} satisfies Record<string, RouteConfig>

routes.admin.auth       // true, the literal — not boolean
routes.home.path        // '/', not string
routes.missing          // error: property does not exist

// with `: Record<string, RouteConfig>` instead, all three
// of those are lost.

An annotation checks and widens; satisfies checks and keeps. A year of using it has produced one consistent lesson: it belongs on object literals that are also data, and it is not a general replacement for annotations on variables whose type is the point. Where it genuinely shines is a keyed map where the keys themselves need to stay literal.